Dockerの主なコマンド、オプション。
詳細は公式ドキュメント。
Container
docker container ls [オプション]
稼働中のコンテナ一覧を表示する。
-
-a
― 停止中のコンテナも表示する。 -
-s
― ファイルサイズを表示する。
docker container [オプション] inspect コンテナ
コンテナの詳細情報を表示する。コンテナは複数指定可能(スペース区切り)。
docker container run [オプション] イメージ [コマンド]
イメージからコンテナを作成し、稼働させる(docker image pull
とdocker container create
とdocker container start
を一度に実行する)。
コマンドの終了と同時に、コンテナも停止する。終了と同時に破棄したい場合は--rm
をつける。
-
--name コンテナ名
― コンテナ名を指定する。 -
-p ホストのポート番号:コンテナのポート番号
― コンテナのポートをホストに公開する。コンテナ間の通信では不要。 -
--mount type=bind,src=ホストのディレクトリ,dst=コンテナのディレクトリ
― バインドマウント。ホストのディレクトリをコンテナにマウントする。複数指定可能。 -
--mount type=volume,src=ボリューム,dst=コンテナのディレクトリ
― ボリュームマウント。ボリュームをコンテナにマウントする。複数指定可能。 -
--volumes-from コンテナ
― 指定したコンテナと同じボリュームにマウントする -
-e 環境変数名=値
― 環境変数の設定 -
-dit
― コンテナをバックグラウンドで実行させる(デタッチモード)。デタッチ中のログはdocker container logs
で確認できる。 -
-it
― 標準入出力をコンテナに結びつける(キー入力する場合)。 -
-i
― 標準入出力をコンテナに結びつける(キー入力しない場合)。 -
--rm
― コマンドの実行が完了したとき、コンテナを破棄する。 -
-w
― コンテナ内の作業ディレクトリを指定する。 -
--net
― 接続するDockerネットワークを指定する。
# apacheをバックグラウンドで実行する
$ docker container run -dit --name my-container -p 8080:80 --mount type=bind,src="$PWD",dir=/usr/local/apache2/htdocs/ httpd:latest
docker container create [オプション] イメージ [コマンド]
イメージからコンテナを作成する。作成時に実行したいコマンドを指定する。コマンドを省略すると、イメージ製作者が設定した規定のコマンドが実行される。
-
--name コンテナ名
― コンテナ名を指定する。 -
-p ホストのポート番号:コンテナのポート番号
― コンテナのポートをホストに公開する。コンテナ間の通信では不要。 -
--mount type=bind,src=ホストのディレクトリ,dst=コンテナのディレクトリ
― バインドマウント。ホストのディレクトリをコンテナにマウントする。複数指定可能。 -
--mount type=valume,src=ボリューム,dst=コンテナのディレクトリ
― ボリュームマウント。ボリュームをコンテナにマウントする。複数指定可能。 -
-e 環境変数名=値
― 環境変数の設定
docker container start [オプション] コンテナ
停止中のコンテナを稼働させる。コンテナは複数指定可能(スペース区切り)。
docker container stop [オプション] コンテナ
コンテナを停止する。コンテナは複数指定可能(スペース区切り)。
docker container rm [オプション] コンテナ
コンテナを完全削除する。復活はできない。コンテナは複数指定可能(スペース区切り)。
docker container prune [オプション]
停止中のコンテナをすべて削除する。
docker container logs [オプション] コンテナ
コンテナのログを表示する。
docker container attach [オプション] コンテナ
Dockerホストのの標準入力、出力、およびエラーストリームを実行中のコンテナーにアタッチする。
デタッチする場合は「control + p, control + q」。
docker container exec [オプション] コンテナ コマンド
実行中のコンテナでコマンドを実行する。docker container run
と異なり、コマンドの終了後もコンテナは稼働し続ける。
-
-it
― 標準入出力をコンテナに結びつける(キー入力する場合)。 -
-i
― 標準入出力をコンテナに結びつける(キー入力しない場合)。 -
-w
― コンテナ内の作業ディレクトリを指定する。
# 実行中のコンテナでシェルを実行する
$ docker container exec -it my-container /bin/bash
docker container cp [オプション] コピー元のパス コピー先のパス
Dockerホスト、コンテナ間でファイルをコピーする。コンテナが停止中でも可能。
コンテナは「コンテナ:パス」で指定する。
# Dockerホスト → コンテナ
$ docker container cp /tmp/index.html my-container:/usr/local/apache2/htdocs/
# コンテナ → Dockerホスト
$ docker container cp my-container:/usr/local/apache2/htdocs/index.html .
docker container commit [オプション] コンテナ [イメージ名[:タグ]]
コンテナからイメージを作成する
docker container export [オプション] コンテナ
コンテナのファイルシステムをtarアーカイブとしてエクスポートする。
作成されたtarアーカイブはdocker image import
でイメージに変換できる。
docker image save
とは異なり、レイヤー情報やメタ情報は保存されない。
そのため、exportされたファイルをimportして作成したイメージは、run
コマンドも明示的にコマンドを入力する必要がある。
-
-o パス
― ファイルに書き出す。
Image
docker image ls
Dockerホストに保存されたイメージの一覧を表示する。
docker image history [オプション] イメージ
イメージの変更履歴を表示する。
-
--no-trunc
― 省略せずに表示する。
docker image tag イメージ[:タグ] イメージ名[:タグ]
イメージ名・タグを変更する
docker image rm [オプション] イメージ
イメージを破棄する。イメージは複数指定可能(スペース区切り)。
docker image prune [オプション]
使用していないイメージをすべて削除する。
docker image build [オプション] パス
Dockerfileからイメージを作成する。
-
--no-cache
― イメージ作成時にキャッシュを使用しない。 -
-t イメージ名[:タグ]
― イメージ名を指定する。
docker image push [オプション] イメージ[:タグ]
Dockerレジストリにイメージをプッシュする。
DockerHubにプッシュする場合、イメージ名をdocker image tag
等で「dockerId/リポジトリ名:タグ」に設定する必要がある。
まだ作成されていないリポジトリ名でプッシュすると、イメージ名と同名のpublicなリポジトリが作成される。
# DockerHubの自分のレジストリにプッシュする
$ docker login
$ docker image push dockerId/myimage
docker image pull [オプション] イメージ名[:タグ]
イメージをレジストリから取得する。取得したイメージはDockerホストに保存される。
docker image save [オプション] イメージ
イメージをtarアーカイブに保存する。イメージは複数指定可能(スペース区切り)。
デフォルトでSTDOUTにストリーミングされる。
保存したtarアーカイブはdocker image load
でイメージに変換できる。
docker container export
と異なり、レイヤー構造も保存される。
-
-o パス
― ファイルに書き込む。
$ docker image save -o savedimage.tar myimage
docker image load
tarアーカイブまたはSTDINからイメージを読み込む。
tarアーカイブはdocker image save
でコンテナから作成できる。
-
-i パス
― tarアーカイブファイルから読み込む。
docker image import [オプション] パス [イメージ名[:タグ]]
docker container export
によって作成されたtarファイルからイメージを読み込む。
Volume
docker volume ls [オプション]
ボリュームの一覧を表示する。
docker volume inspect [オプション] ボリューム
ボリュームの詳細情報を表示する。ボリュームは複数指定可能(スペース区切り)。
docker volume create [オプション] [ボリューム]
ボリュームを作成する。
-
--name
― ボリューム名を指定する
docker volume rm [オプション] ボリューム
ボリュームを削除する。
docker volume prune [オプション]
使用していないボリュームをすべて削除する。
Network
docker network ls [オプション]
Dockerのネットワークを一覧表示する。
docker network inspect [オプション] ネットワーク
Dockerのネットワークの詳細情報を表示する。
docker network create [オプション] ネットワーク名
ネットワークを作成する。
-
-d
― ドライバーを指定する。指定しなかった場合、bridgeネットワークが作成される。
docker network connect [オプション] ネットワーク コンテナ
コンテナをネットワークに接続する
docker network disconnect [オプション] ネットワーク コンテナ
コンテナをネットワークから切断する
docker network rm ネットワーク
ネットワークを削除する。ネットワークは複数指定可能(スペース区切り)。
その他
docker login [オプション] [サーバー]
Dockerレジストリにログインする
docker logout [サーバー]
Dockerレジストリからログアウトする