はじめに
Dockerのコマンドは普段から動かしているけど、
- コマンドのオプションを丸暗記で打つのではなく、きちんと理解する
- オプションの数が多いので、自分で利用する範囲で覚える
という趣旨で、自分がDockerを使っているうちに必要になったオプションを纏めました。
(※自分用のメモでもあるので、今後内容を増やしていくかもしれません。)
docker ps
オプション |
説明 |
-a , --all
|
このオプションを使うことで、停止しているコンテナも含めて表示することができる。デフォルトでは実行中のコンテナしか表示されないため、「docker psでコンテナ有無確認→無いのでdocker runで以前起動したことのある名前でコンテナを実行→同じ名前のコンテナがあるので落ちる」というのを何回もやってしまった。 |
-q , --quiet
|
DockerコンテナのIDのみを一覧表示する。一括でコンテナを削除したい場合等に使える。参考:一発ですべてのDockerコンテナを停止・削除、イメージの削除をする
|
-f , --filter
|
フィルタを入れる。例えば、停止中の一覧を表示させたいのなら docker ps -f "status=exited" とする。公式ドキュメントにて、どういうフィルタが利用できるのか確認できる。 |
docker build
オプション |
説明 |
-f , --file
|
Dockerfile のファイルパスを指定する。 |
--pull |
常に最新バージョンのイメージを取得する。 |
--rm |
ビルド途中に作成された中間イメージを削除する。 |
-t , --tag
|
イメージの名称。バージョンを入れる場合は name:version というフォーマットにする。 |
docker run
オプション |
説明 |
-d , --detach
|
コンテナをバックグラウンドで実行する。 |
-e , -env
|
環境変数の設定。 |
-i , --interactive
|
STDIN(標準入力)をオープンにし続ける。コマンドの結果を受け取るために必要。(参考) |
--name |
名前。名前をつけない場合、ランダムでコンテナの名前が付けられる。docker psで名前を確認できる。 |
--network |
ネットワーク設定。例えば、--network="host" とすると、Docker Hostのネットワークが利用できる。ネットワークの設定をしておかないと、docker execでパッケージのアップデート(apt-get)等を行うことすらできない場合があるので、docker runを実行する際に設定しておくと良い。Hostネットワークについてはこちらの記事が分かりやすい。 |
-p , --publish
|
ポート設定。書き方は、-p {ホストのポート番号}:{コンテナ内のポート番号}
|
-t |
公式ドキュメントには "Allocate a pseudo-TTY"(疑似TTYを割り当てる) とある。ttyというのは標準入出力となっている端末デバイスのことで、ターミナルでの操作を行う際に違いが出る。ターミナル内で何かオペレーションをする可能性がある場合には付けておくと良いオプション(という理解)。こちらにもう少し詳細の挙動の違いが記載されている。-it というのが出てきたら、-i と -t を両方付けたオプションということ。 |
-v , --volum
|
フォルダをマウントする。Dockerコンテナとローカルで双方向に簡単にファイル共有ができる。書き方は、-v {ローカルのファイルパス}:{コンテナ内のファイルパス} 。絶対パスで指定する必要があることに注意。 |
docker rm
オプション |
説明 |
-f |
実行中のコンテナであっても削除する。デフォルトでは、実行中のコンテナは停止してから削除する必要があり、このオプションでショートカットできる。 |
docker exec
-
-i
や -t
はdocker runと同じ。bashのコネクションを張る時は基本的に -it
を付けること、と覚えておく。
参考