0.Dockerコンテナのステータスとライフサイクル
1.コンテナの生成
2.コンテナの生成+起動
2-1.コンテナの生成+起動(対話形式)
構文
docker container run [実行オプション] イメージ名[:タグ名] [引数]
オプションについて
オプション |
説明 |
--attach,-a |
標準入力(STDIN) /標準出力(STDOUT) /標準エラー出力(STDERR)にアタッチする |
--cidfile |
コンテナIDをファイルに出力する |
--detach,-d |
コンテナを生成し、バックグラウンドで実行する |
--interactive,-i |
コンテナの標準入力を開く |
--tty,-t |
端末デバイス |
コマンド入力結果(/bin/cal)
C:\Users\******>docker container run -it --name "test1" centos:7 /bin/cal
June 2020
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
入力コマンドの説明(/bin/cal)
docker container run -it --name "test1" centos:7 /bin/cal
番号 |
入力内容 |
説明 |
① |
docker container run |
コンテナを作成+実行 |
② |
-it |
コンソールに結果を表示させる |
③ |
--name "test1" |
コンテナ名 |
④ |
centos:7 |
イメージ名 |
⑤ |
/bin/cal |
コンテナで実行するコマンド |
centos:7
というイメージをもとにtest1
という名前のコンテナを生成し実行して、コンテナ内の/bin/cal
というコマンドを実行する。
コマンド入力結果(/bin/bash)
C:\Users\******>docker container run -it --name "test2" centos:7 /bin/bash
[root@99348d290971 /]#
- Linuxのターミナルが起動しているのと同じ状態
- 抜ける場合は
exit
コマンドを実行する。
[root@99348d290971 /]# exit
exit
2-2.コンテナの生成+起動(バックグラウンド)
構文
docker container run [実行オプション] イメージ名[:タグ名] [引数]
オプションについて
オプション |
説明 |
--detach,-d |
バックグラウンドで実行する |
--user,-u |
ユーザー名を指定 |
--restart=[no/on-failure/on-failure:n(回数)/always/unless-stopped] |
コマンドの実行結果によって再起動を行う |
--rm |
コマンド実行完了後にコンテナを自動で削除 |
コマンド入力結果(/bin/cal)
C:\Users\******>docker container run -d centos /bin/ping localhost
3bd5beab1045ad897f8fbb8e969c776b31d603578385eecf5ab46b0bc938bae3
入力コマンドの説明
docker container run -d centos /bin/ping localhost
番号 |
入力内容 |
説明 |
① |
docker container run |
コンテナを作成+実行 |
② |
-d |
バックグラウンドで実行 |
③ |
centos |
イメージ名 |
④ |
/bin/ping localhost` |
コンテナで実行するコマンド |
ping
コマンドを実行しているが、バックグラウンドでの実行なので結果はコマンドプロンプトに表示されない。
- 表示されている文字列は起動したコンテナの
コンテナID
コマンド入力結果(バックグラウンド実行中の動作確認)
C:\Users\******>docker container logs -t 3bd5beab1045ad897f8f
2020-06-28T13:00:39.738149475Z PING localhost (127.0.0.1) 56(84) bytes of data.
2020-06-28T13:00:39.738168975Z 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.017 ms
2020-06-28T13:00:40.749741495Z 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.058 ms
2020-06-28T13:00:41.773938819Z 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.052 ms
2020-06-28T13:00:42.797915443Z 64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.051 ms
2020-06-28T13:00:43.821839368Z 64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.056 ms
~(省略)
その他
設定値 |
説明 |
no |
再起動しない |
on-failure |
終了ステータスが0でないときに再起動する |
on-failure:n(回数) |
終了ステータスが0でないときにn回再起動する |
always |
常に再起動する |
unless-stopped |
直近のコンテナが停止状態でなければ、常に再起動する |
2-3.コンテナの生成+起動(ネットワーク設定)
構文
docker container run [ネットワークオプション] イメージ名[:タグ名] [引数]
オプションについて
オプション |
説明 |
--add-host=[ホスト名:IPアドレス] |
コンテナの/etc/hostsにホスト名とIPアドレスを定義する |
--dns=[IPアドレス] |
コンテナ用のDNSサーバのIPアドレスを指定 |
--expose |
指定したレンジのポート番号を割り当てる |
--mac-address=[MACアドレス] |
コンテナのMACアドレスを指定する |
--net=[bridge/none/container:/host/NETWORK] |
コンテナのネットワークを指定する |
--hostname |
コンテナ自身のホスト名を指定する |
--publish,-p[hostのポート番号]:[コンテナのポート番号] |
ホストとコンテナのポートマッピング |
--publish-all,-p |
ホストの任意のポートをコンテナに割り当てる |
入力例
// コンテナのポートマッピング
docker container run -d -p 8080:80 nginx
// コンテナのDNSサーバ指定
docker container run -d --dns 192.168.1.1 nginx
// コンテナのMACアドレスの指定
docker container run -d --mac-address="**:**:**:**:**:**" centos
// ホスト名とIPアドレスの定義
docker container run -it --add-host test.com:192.168.1.1.centos
その他
設定値 |
説明 |
bridge |
ブリッジ接続(デフォルト)を使う |
none |
ネットワークに接続しない |
container:[name/id] |
他のコンテナのネットワークを使う |
host |
コンテナがhostOSのネットワークを使う |
NETWORK |
ユーザー定義ネットワークを使う |
2-4.コンテナの生成+起動(リソース指定)
構文
docker container run [リソースオプション] イメージ名[:タグ名] [引数]
オプションについて
オプション |
説明 |
--cpu-shares,-c |
CPUの仕様の配分(比率) |
--memory,-m |
使用するメモリを制限して実行する(単位はb、k、m、gのいずれか) |
--volume=[ホストのディレクトリ]:[コンテナのディレクトリ],-v |
ホストとコンテナのディレクトリを共有する |
入力例
// CPU時間の相対割合とメモリの使用量を指定する
docker container run --cpu-shares=512 --memory=1g centos
// ディレクトリの共有
docker container run -v /Users/asa/webap:usr/share/nginx/html nginx
2-4.コンテナの生成+起動(環境を指定する)
構文
docker container run [環境設定オプション] イメージ名[:タグ名] [引数]
オプションについて
オプション |
説明 |
--env=[環境変数],-e |
環境変数を設定する |
--env-file=[ファイル名] |
環境変数をファイルから設定する |
--read-only=[true/false] |
コンテナのファイルシステムを読み込み専用にする |
--workdir=[パス],-w |
コンテナの作業ディレクトリを指定する |
-user=[ユーザー名],-u |
ユーザー名、またはUIDを指定する |
入力例
// 環境変数の設定
docker container run -it -e foo=bar centos /bin/bash
// 確認する
#set
// 作業ディレクトリの設定
docker container run -it -w=/tensorflow centos /bin/bash
// 確認する
#pwd
\tensorflow
3.稼働コンテナの一覧表示
構文
docker container ls [オプション]
オプションについて
オプション |
説明 |
--all,-a |
起動中/停止中を含めすべてのコンテナを表示する |
--filter,-f |
表示するコンテナのフィルタリング |
--format |
表示フォーマットを指定 |
--last,n |
最後に起動されてからn件のコンテナのみ表示 |
--latest,-l |
最後に起動されたコンテナのみ表示 |
--no-trunc |
情報を省略しないで表示する |
--quiet,q |
コンテナIDのみ表示する |
--size,-s |
ファイルサイズの表示 |
出力項目の説明
出力項目 |
説明 |
CONTAINER ID |
コンテナID |
IMAGE |
コンテナのもとになっているイメージ |
COMMAND |
コンテナ内で実行されているコマンド |
CREATED |
コンテナ生成からの経緯 |
STATUS |
コンテナの状態(restarting/running/paused/existed) |
PORTS |
割り当てられたポート |
NAMES |
コンテナの名前 |
4.コンテナの稼働確認
構文
docker container stats [コンテナ識別子]
入力例
C:\Users\******>docker container stats test1
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
7275eaac2d3b test1 0.00% 0B / 0B 0.00% 0B / 0B 0B / 0B 0
- 確認が終わったら
Ctrl
+c
でコマンドを終了する。
出力項目の説明
出力項目 |
説明 |
CONTAINER ID |
コンテナID |
NAME |
コンテナ名 |
CPU % |
CPU使用率 |
MEM USAGE/LIMIT |
メモリ使用量/コンテナで使用できるメモリ制限 |
MEM % |
メモリ使用率 |
NET I/O |
ネットワークI/O |
BLOCK I/O |
ブロックI/O |
PIDS |
PID(Windowsコンテナ除く) |
5.コンテナの起動
構文
docker container start [オプション] コンテナ識別子 [コンテナ識別子]
オプションについて
オプション |
説明 |
--allach,-a |
標準出力/標準エラー出力を開く |
--interactive,-i |
コンテナの標準入力を開く |
入力例
C:\Users\******>docker container start test1
test1
6.コンテナの停止
構文
docker container stop [オプション] コンテナ識別子 [コンテナ識別子]
オプションについて
オプション |
説明 |
--time,-t |
コンテナの停止時間を指定する(デフォルト10秒) |
入力例
C:\Users\******>docker container stop -t 20 test1
test1
7.コンテナの再起動
構文
docker container restart [オプション] コンテナ識別子 [コンテナ識別子]
オプションについて
オプション |
説明 |
--time,-t |
コンテナの再起動時間を指定する(デフォルト10秒) |
入力例
C:\Users\******>docker container restart -t 20 test1
test1
8.コンテナの削除
構文
docker container rm [オプション] コンテナ識別子 [コンテナ識別子]
オプションについて
オプション |
説明 |
--force,-f |
起動中のコンテナを強制的に削除する |
--volumes,-v |
割り当てたボリュームを削除する |
入力例
C:\Users\******>docker container rm test1
test1
9.コンテナの中断/再開
構文
// コンテナの中断
docker container pause コンテナ識別子
// コンテナの再開
docker container unpause コンテナ識別子
参考文献
以下の本を読みながら、Dockerの勉強を開始しました。
その他の記事へ