【Docker】Docker ~ 基本編 / docker container コマンド ~

■ はじめに

https://dk521123.hatenablog.com/entry/2020/04/13/000000

の続き。

今回は、docker container コマンドについて扱う。

目次

【0】docker container コマンド一覧
【1】docker container run
【2】docker container ps (docker ps)
【3】docker container stop
【4】docker container kill
【5】docker container rm
【6】docker container start
【7】docker container attach
【8】docker container logs
【9】docker container exec (docker exec)
【10】docker container update
【11】docker container cp (docker cp)

【0】docker container コマンド一覧

Command Explanation
docker container run コンテナを起動
docker container stop コンテナ停止
docker container rm コンテナ削除
docker container start
docker container attach フォアグラウンドで実行
docker container logs ログ表示
docker container ls (-a) コンテナ一覧表示
docker container cp コンテナへファイルをコピー

遷移図

                       +------------+
                       | Docker Hub |
                       +------------+
                             | ↑
                        pull | | push
                             ↓ |
+------------+  build  +--------------+ rmi
| Dockerfile | ------> | Docker Image | ------> Deleted
+------------+         +--------------+
                  ↙ ↗  create | ↑ commit
          run ↙ ↗ commit      ↓ |
+-----------+  stop   +-----------+ rm
| Container | ------> | Container | ------> Deleted
| (Running) | <------ | (Stopped) |
+-----------+   run   +-----------+

【1】docker container run

# コンテナを起動
docker container run --name=[名前] <イメージ名> <コマンド>

コマンド例

#  ( コンテナ上で「echo "Hello World"」を実行)
sudo docker container run centos echo "Hello World"

【2】docker container ps (docker ps)

* 動いているコンテナの確認

コマンド例

# 
docker container ps

# 停止しているコンテナの確認
docker container ps -a

# 実行完了後の最新3履歴を表示
docker container ps -a -n=3

【3】docker container stop

docker container stop centos

# 実行を停止
# sudo docker kill 27f0c47e97eb でも可能
sudo docker container stop 27f0c47e97eb

# 確認
sudo docker container ps

【4】docker container kill

* コンテナのプロセスを停止(kill)
* docker kill

【5】docker container rm

docker container rm centos

# 「sudo docker container ps -a」で確認するとなくなっているはず
sudo docker rm 3c38d46e852d

【6】docker container start

sudo docker container start 27f0c47e97eb

【7】docker container attach

# フォアグラウンドで実行
# バックグラウンド => フォアグラウンドで実行
sudo docker attach --sig-proxy=false 27f0c47e97eb

https://matsuand.github.io/docs.docker.jp.onthefly/engine/reference/commandline/container_attach/

【8】docker container logs

# ログ表示
sudo docker container logs 27f0c47e97eb

【9】docker container exec (docker exec)

* Dockerコンテナ内に入る
* 実行中のコンテナ内でコマンド実行
* 旧コマンド「docker exec」

構文

# コンテナIDは、docker psで調べておく
docker ps

# Dockerコンテナ内に入る
docker exec -it <container_id> bash
# exit で出る

# -i (--interactive)は、標準入力を開き続ける
# -t (--tty) は、コンテナ内で疑似的な仮想端末を割り当ててる

https://www.memotansu.jp/docker/591/

【10】docker container update

* コンテナの設定を更新

ホストOS起動時に自動で実行するように設定

* 「docker update --restart=always <コンテナ名>」で
 ホストOS起動時に自動で実行する
* 無効にするには「--restart=no」
* 以下の関連記事で使用した。

https://dk521123.hatenablog.com/entry/2019/12/14/010524

【11】docker container cp (docker cp)

* コンテナ<=>ホストへのファイルやディレクトリをコピー
* 旧コマンド「docker cp」

コマンド例

# コンテナIDは、docker psで調べておく
docker ps

# ホストからコンテナにコピー
# docker cp <ファイル元> <コンテナID>:<ファイル先>
docker cp ./file1.txt cont1:/tmp

# コンテナからホストにコピー
# docker cp <コンテナID>:<ファイル元> <ファイル先>
docker cp cont1:/tmp/file2.txt .

参考文献

https://qiita.com/zembutsu/items/6e1ad18f0d548ce6c266

関連記事

Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/02/25/000000
Docker ~ 基本編 / dockerコマンド ~
https://dk521123.hatenablog.com/entry/2020/04/13/000000
Docker ~ 基本編 / レポジトリに関するコマンド ~
https://dk521123.hatenablog.com/entry/2023/01/21/000000
脆弱性エラー対応時に役立ったDockerコマンド
https://dk521123.hatenablog.com/entry/2024/02/03/020736
Docker ~ ファイルをコンテナにコピー ~
https://dk521123.hatenablog.com/entry/2022/04/27/000000
Docker ~ トラブルシュート方法 ~
https://dk521123.hatenablog.com/entry/2023/12/12/034018
Amazon ECR ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/05/22/165711