前提
Dockerのコマンドは近年、以下の書式に統一しようという動きがある。
docker コマンド 操作 オプション
そのため、一つのコマンドに二通りの書き方があったりする。
docker run ~~~~~
docker container run ~~~~~
container
docker container xxx でも同じコマンドとなる。
docker ps / docker container ls
docker ps -aでは停止中のコンテナを含めて表示が可能。
docker run
オプション
-v
フォルダのマウントを指定する
-v ホストのマウント元フォルダ:コンテナのマウント先フォルダ
-w
コマンドを実行する際のワークディレクトリを指定
-w /usr/src/myapp
-p
ポートフォワーディングを設定
-p ホストのポート:コンテナのポート
--rm
コマンドの実行後に削除する
--rm
docker exec
実行中のコンテナ内でコマンドを起動する。
docker exec -it my-container-name /bin/bash
シェルコマンドは配布されているイメージでは基本的に入っているため、/bin/bashでシェルを起動できる。
docker start {コンテナ名/コンテナID}
*コンテナIDは全て入力するのが面倒なため、頭文字いくつかを入力すればコンテナIDを認識してくれるようになっている。
docker stop {コンテナ名/コンテナID}
docker rm {コンテナ名/コンテナID}
docker logs {コンテナ名/コンテナID}
*「何をコンテナのログとするか」は設定ファイルによって変更可能。
image
docker image ls
docker image rm {repository名:TAG}
*TAGを指定しないとlatestが削除
その他
docker cp
ホスト→コンテナにコピー
docker cp オプション コピー元のパス名 コンテナ名またはコンテナID:コピー先パス名
コンテナ→ホストにコピー
docker cp オプション コンテナ名またはコンテナID:コピー元パス名 コピー先のパス名