Docker runコマンドの実行方法

  • Docker

この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。

Dockerのメモを整理していて、docker runの実行方法をまとめておく。

インタラクティブに実行する

docker run -it <image-name>

-i(標準入力を開いたままにする)と -t(疑似TTYを割り当てる)の組み合わせ。コンテナにアタッチした状態でシェル操作したい時に使う。

バックグラウンドで実行する

docker run -itd <image-name>

-d(デタッチ実行)を追加した形。ただし -d を付けた時点でコンテナはバックグラウンドに回るので、-itを同時に付ける意味は「後でdocker attachした時にTTY付きでインタラクティブに使えるようにしておく」程度でしかない。

単にバックグラウンドで起動したいだけなら

docker run -d <image-name>

で十分で、-itは必須ではない。

逆に、bashのようなシェルをエントリーポイントにしていてTTYがないとすぐ終了してしまうイメージの場合は、-itdにしておくと安全らしい(この挙動は未確認)。

使い分けの結論

  • 後でアタッチしてインタラクティブに使う前提があるなら -itd
  • そうでないなら -d だけで良い

ついでによく使うオプション

  • --rm: コンテナ終了時に自動削除。動作確認用の使い捨てコンテナで便利
  • --name <container-name>: コンテナに名前を付けて管理しやすくする
  • -p <host>:<container>: ポートフォワーディング
  • -v <host-path>:<container-path>: ボリュームマウント