まだらもよう

Qiitaに投稿できないメモ書きなど

コンテナライフサイクルとdocker containerコマンド

コンテナライフサイクル

  • 実行中
    docker container run イメージ名:タグ直後。CMDやENTRYPOINTを実行する。

  • 停止
    docker container stop コンテナ名orコンテナIDで停止させるか、コンテナで実行されているアプリが正常終了・異常終了した状態。
    コマンドラインツールなどはすぐ終了するため、コンテナもすぐにこの状態になる。サーバーアプリなどは実行され続けるため、異常終了しない限り停止状態にはならない。

  • 破棄
    停止状態のコンテナはディスクにずっと残るが、docker container rm コンテナ名orコンテナIDで削除できる。

docker containerコマンド

コンテナを起動する。

$ docker container run -t -p 9000:8080 イメージ名:タグ名

-pでホストの9000ポートとコンテナの8080ポートをフォワーディングしている

対話的に使用する。

$ docker container run -it alpine:latest

-iで標準入力を繋いだままにする
-tで擬似端末を有効にする

コマンドラインツールとしてコンテナを利用する。

$ echo '{"version":100}' | docker container run -i --rm jq '.version'

--rmでコンテナが停止したとき自動で削除される。


実行中コンテナでコマンド実行。

$ docker container exec -it コンテナ名 bash

runと同じく-itでシェル経由で操作。


一覧を表示する。

$ docker container ls --filter "name=コンテナ名" -q

--filterで表示するコンテナを絞り込む。
-qでコンテナIDだけを表示。


ファイルをコピー

docker container cp コピー元 コピー先

コンテナ内のパスを指定するにはコンテナ名orコンテナID:パス