本ページはプロモーションが含まれています

Dockerの代表的なコマンド


dockerの入門であり、極めて代表的なコマンドとオプションを下表にまとめました。
コマンド オプション 説明
docker [image] pull イメージ名[:タグ] レジストリ(通常Docker Hub)からイメージをダウンロードする。
docker pull nginx
docker [image] ls
docker images
保有しているイメージを一覧表示する。
docker rmi イメージ名[:タグ]
docker image rm イメージ名[:タグ]
イメージを削除する。
docker rmi hello-world
docker [image] build option Dockerfileのパス Dockerfileからイメージを構築する。
-t イメージ名[:タグ] 構築するイメージ名とタグを指定する。
docker build -t myimg .
docker [image] save option イメージ名[:タグ] イメージをファイル(tar形式)に書き出す。
-o 出力ファイル イメージを出力するファイル名を指定する。
出力ファイルを指定しない場合は標準出力に書き出す(この場合は通常リダイレクトでファイルに保存する)。
docker save -o myimgv2.tar myimg:2
docker save myimg:2 > myimgv2.tar
docker [image] load option イメージをファイル(tar形式)から読み込む。
-i 入力ファイル 入力するイメージファイルを指定する。
入力ファイルを指定しない場合は標準入力から読み込む。
docker load < myimgv2.tar
docker [container] run option イメージ名[:タグ] イメージからコンテナを作成し開始する。
イメージが未取得の場合は最初にimage pullが自動的に実行される。
-d 起動後にバックグラウンド実行する(detach)。
--name コンテナ名 任意のコンテナ名を与える。省略すると自動で適当な名前がつけられる。
-t TTY端末を割り当てる。
-i コンテナの標準入力に接続する。コンテナ内でキーボードが使えるようになる。
コンテナにログインしてシェルを使う場合は、-tと-i(-ti)オプションを同時に指定する。
docker run -ti --name ubn utuntu
これと同じことをcreateとstartで行うならば次のようになる。
docker create -ti --name ubn utuntu
docker start -ai ubn
-p ホスト側ポート:コンテナ内ポート コンテナのポート番号をホスト側のポートへ公開する。
-v ホスト側ディレクトリ:コンテナ内ディレクトリ ホスト側のディレクトリをコンテナ内にマウントする。
docker run -p 8080:80 -v ~/html:/var/www/html php
-e 環境変数= コンテナへ環境変数を設定して渡す。
docker run -e MYSQL_ROOT_PASSWORD=mypass --name db mysql
--net ネットワーク ネットワークに接続する。
docker run --net mynet -p 8080:80 php:7.4-apache
docker [container] create option イメージ名[:タグ] イメージからコンテナを生成し、停止状態にする。
docker runとは異なり、未入手イメージのpull操作は行わない。
--name コンテナ名 runコマンドと同じ。
-t
-i
-p ホスト側ポート:コンテナ内ポート
-v ホスト側ディレクトリ:コンテナ内ディレクトリ
-e 環境変数=
--net ネットワーク
docker [container] start option コンテナ 停止中コンテナを開始(起動)する。
-i コンテナの標準入力に接続する。コンテナ内でキーボード操作ができる。
-a コンテナの標準入出力・標準エラー出力に接続する(attach)。-iオプションを指定する場合で、特にコンテナのシェルを操作する場合などは、一般に-aオプションも同時に指定する。docker runでは暗黙にstartの-aオプション相当が指定されている。
docker start -ai ubn
docker start -a hello
docker start apache
docker [container] stop コンテナ コンテナを停止する。
停止中は停止前の状態を保持する。
docker [container] rm コンテナ 停止状態のコンテナを削除する。
削除したコンテナは復元できない。
docker ps optiondocker container ls option コンテナを一覧表示する。
-a 停止状態のコンテナを含める。デフォルトは起動中コンテナのみを表示する。
docker [container] cp コピー元パス コピー先パス コンテナとホスト間でファイルをコピーする。
コピー方向はコンテナとホストのどちらでもよい。ただしコンテナ側のパスは「コンテナ:パス」のように指定する。
docker cp ubn:/etc/ld.so.conf ld.so.conf
docker [container] commit コンテナ イメージ名[:タグ] コンテナの状態をイメージにエクスポートする。
イメージ書き出し中はコンテナのプロセスは停止するが、なるべく停止状態にしてからの方が安全である。
docker commit cdev cdevimg:1
docker network create ネットワーク名 ネットワークを作成する。
デフォルトでブリッジネットワークを作成する。ネットワークインタフェースが新たに追加され、ifconfigコマンドで確認できる。
docker network create brnet
初期状態で、コンテナがデフォルトで接続するブリッジネットワーク「bridge」が自動生成され、docker0というインタフェースが作られる。
docker network rm ネットワーク ネットワークを削除する。
docker network ls ネットワークを一覧表示する。
docker version バージョン情報を表示する。
2017年のバージョン1.13からコマンド体系が整理され、docker image、docker containerの「container」「image」を付けて操作対象を指定するようになりました。ただし、それ以前のコマンド方式は現時点ではまだ使うことができます。上の表の[container]、[image]の[]は省略できるという意味です。
docker containerやnetworkでは、コンテナやネットワークのパラメータは、通常は名前で指定しますが、各リスト表示で確認できるIDでも指定できます。