【Docker】dockerコマンド基礎
前置き
基本的なコマンド一覧を載せています。全てのコマンドを載せているわけではないので詳しくはhelpで確認してみてください。
docker --help
コンテナ操作・管理
Dockerコンテナの管理や操作を行うコマンド群。docker <コマンド>
で実行する形になる。
コマンド | 概要 |
---|---|
run | 新規コンテナを起動する。 |
create | イメージからコンテナ作成を行う。但しrunと異なりコンテナの起動は行わない。 |
start | 停止しているコンテナを起動する。 |
stop | 起動しているコンテナを停止する。-tオプションでプロセスがkillされるまでの待機時間を設定できる。 |
restart | コンテナを再起動する。-tオプションでプロセスがkillされるまでの待機時間を設定できる。 |
pause | 指定されたコンテナ内の全プロセスをサスペンドする。 内部的にはLinuxのcgroupsのfreezer機能を使用している。 |
unpause | pauseしているコンテナの全プロセスを動かす。 |
attach | 指定したコンテナの標準入力、標準出力、エラー出力をローカルのターミナルに表示することができる。 |
cp | コンテナ・ホスト間でファイルやディレクトリのコピーを行う。 |
exec | 起動中のコンテナでコマンドを実行する。sshの代わりとして使用できる。docker exec <コンテナID> echo "Hello" |
kill | 起動中コンテナのメインプロセスを停止させる。 |
rm | コンテナを削除する。 |
diff | 現在のコンテナの状態と起動元イメージのファイルシステム差分を表示する。 |
events | Dockerデーモンのリアルタイムイベントを出力する。 |
inspect | 指定されたコンテナ・イメージの詳細情報を表示する。 |
logs | コンテナのSTDERRやSTDOUTに書き出された内容(ログ)を表示する。 |
port | 指定されたコンテナの公開ポートのマッピングリストを表示する。 |
ps | 現在のコンテナ群に関す情報を表示する。 |
top | 指定されたコンテナ内で実行中のプロセス情報を表示する。 |
runコマンド
runコマンドによって新規コンテナを起動することができる。使用されることの多いオプションは以下の通り。
コマンド | オプション | 概要 |
---|---|---|
run | -a | 指定されたストリーム(stdout, stderrなど)をターミナルにアタッチする。 |
-d | コンテナをバックグラウンドで実行する。 | |
-i | stdinをオープンにしたままに保ち、-tと一緒に使われることが多い。 | |
-t | 擬似的なTTY(端末デバイスの名前)を割り当てる。 -i と併用することでsshで接続したかのように操作することができる。 |
|
--restart | コンテナの再起動設定を行う。noを指定するとリスタートなし、 alwaysは終了ステータスに関わらず再起動、 on-failureは0以外のステータスで終了した場合に再起動。 リトライ回数も指定できる。 |
|
--rm | 終了時にコンテナを自動的に削除する。-dとの併用不可。 | |
-e | コンテナ内の環境変数を設定する。docker run -e <変数>=<値> debian |
|
--env-file | ファイルから変数を渡せる。 | |
-h | Unixホスト名を設定する。 | |
--name | 名前をコンテナに割り当てる。 | |
-v | ホスト側のディレクトリをコンテナ内にマウントすることができる。docker run -v <ホスト側のパス>:<コンテナ側のパス> debian |
|
--volumes-from | 指定したコンテナからボリュームをマウントする。docker run --volumes-from <コンテナ名> debian |
|
--expose | コンテナで使用されるポートを指定する。但しオープンする場合は-pオプションと一緒に使用する。 | |
--link | 指定されたコンテナに対するプライベートなNetworkInterfaceをセットアップする。 | |
-p | コンテナのポートを公開する。ホストからアクセス可能になる。ホストのポートが指定されていない場合は大きいポート番号がランダムに使用される。 | |
--entrypoint | コンテナのENTRYPOINTを設定する。DockerfileないのENTRYPOINT命令は全て上書きされる。 | |
-u | コマンドを実行するユーザを設定るす。 | |
-w | コンテナ中の作業ディレクトリを設定する。 |
rmコマンド
コンテナを削除するコマンド。デフォルトではボリュームを削除しない。よく使用するオプションは以下の通り。
コマンド | オプション | 概要 |
---|---|---|
rm | -f | 実行中のコンテナを削除する。 |
-v | 削除するコンテナが作成したボリュームも削除する。 |
[TIPS]
# 全コンテナ削除 docker rm $(docker ps -aq)
cpコマンド
# ローカルファイルをコンテナにコピー docker cp <ローカルファイルパス> <コンテナID>:<ファイルパス> # コンテナファイルをローカルにコピー docker cp <コンテナID>:<ファイルパス> <ローカルファイルパス>
イメージ管理・操作
Dockerイメージを扱うコマンド群を紹介します。
コマンド | 概要 |
---|---|
images | ローカルのイメージリストを表示する。-qオプションを使用することでIDのみ表示させられる。 |
history | イメージの各例やの情報を表示する。 |
build | Dockerfileからイメージを構築する。 |
commit | 指定されたコンテナからイメージを生成する。一般的には再現しやすいDockerfileから構築する方が汎用性が高い。 |
export | コンテナのファイルシステム内容をtarファイルとしてSTDOUTに出力する。ポートなどのメタデータやボリュームは出力されない。 |
import | ファイルシステムを含むアーカイブからイメージを生成する。ポートなどのメタデータは読み込まれない。 |
save | イメージもしくはリポジトリをtarアーカイブにしてSTDOUTにストリーム出力する。メタデータを保持させることが可能。 |
load | STDIN経由で渡されたtarアーカイブからリポジトリを生成する。このイメージには履歴とメタデータが含まれ、saveコマンドによって生成されたアーカイブを利用する。 |
rmi | 指定されたイメージを削除する。タグ名が指定されていない場合はlatestが削除される。また、rimコマンドはリポジトリごとに実行する必要がある。 |
tag | イメージにリポジトリとタグ名を関連づける。 |
tagコマンド
イメージにリポジトリとタグ名を関連づけるコマンド。具体的な使用例は以下の通り。
# リポジトリにイメージを追加。タグはlatestになる。 $ docker tag <イメージID> <リポジトリ名> # タグを設定してリポジトリにイメージを追加。 $ docker tag <イメージ名>:<ローカルタグ名> <リポジトリ名>:<タグ名>
レジストリ利用
Docker Hubを含むレジストリを利用するためのコマンド群を紹介します。
コマンド | 概要 |
---|---|
login | 指定されたレジストリサーバへ登録やログインを行う。サーバの指定がない場合はDocker Hubが使用される。 |
logout | レジストリからログアウトする。 |
pull | 指定されたイメージをレジストリからダウンロードする。タグが指定されなかった場合はlatestタグ(公式またはそれに準じたもの)のついたイメージがダウンロードされる。docker pull <イメージ名>:<タグ名> docker pull <ホスト名>:<ポート番号>/<リポジトリパス>:<タグ> |
push | イメージもしくはリポジトリをレジストリにアップロードする。タグ指定がない場合はリポジトリ内の全イメージがアップロードされる。 |
search | 検索条件にマッチしたDocker Hub上の公開リポジトリのリストを最大25個表示する。 |
Docker全般
インストールされたDockerに関する情報表示コマンドを紹介します。
コマンド | 概要 |
---|---|
info | Dockerのシステム及びホスト情報を表示する。 |
version | Dockerクライアント及びサーバ、コンパイルに使用されたGoのバージョンを表示する。 |