docker runコマンドのオプションまとめ

スポンサードリンク



こんにちは。sinyです。

本記事では、Docker入門者向けにdocker runコマンドオプションについて情報をまとめました。

docker runコマンドとは?

docker runコマンドはDockerイメージからコンテナを作成し、実行状態にするために使うコマンドです。

なお、「docker run」だと何をrunしているか明確でないので、「docker container run」コマンドを使うことをお勧めします。

理由は、「何をrunしているかコマンドを見れば明確だから」です。

 ※docker runもdocker kontainer runも実施していることは同じです。

docker container runコマンドオプション

docker runコマンドのオプションには様々なものがありますが、よく使う押さえておきたいものをまとめました。

-dオプション
バックグラウンドでコンテナを動作させることができる。
※-dオプションをつけないとdocker container runしたコマンドがアクティブのままになって他のコマンドが実行できない状態になるため、通常は-dオプションをつけることが多いと思います。
-itオプション
これは-iと-tという2つのオプションをつなげたものでdocker内入力ができるようにするために頻繁に利用します。

-tオプション:コンテナの標準出力をホストの標準出力につなげる(=標準入力を開き続け操作出来るようにする
-iオプション:ホストの入力をコンテナの標準出力につなげる(=標準入力を開き続ける

例としてpythonのdockerイメージを-itオプションでrunしてみます。
docker container run -it pythonを実行するとpythonコンテナの内部でコマンドが入力できるようになります。
つまり、pythonコマンドが実行できる状態になります。
以下の例ではprint("testです")と実行し、pythonコードが実行できることが確認できます。
$ docker container run -it python
Python 3.7.4 (default, Sep 12 2019, 15:40:15)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("testです")
testです
>>> exit()

sinfo@SINPC MINGW64 /c/Program Files/Docker Toolbox
$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

sinfo@SINPC MINGW64 /c/Program Files/Docker Toolbox
$

最後にexit()したあと、docker psを実行するとpythonのコンテナがなくなっていることがわかります。
-itオプションをつけると操作を終了した時に明示的にコンテナを停止しなくても自動で停止してくれます。

-p [ホスト側のポート番号]:[コンテナのポート番号]
-pオプションはポートフォワーディング設定と言って、ホスト側とコンテナ側の通信ポートを紐づける設定です。
docker container run -it -p 9000:8000 <イメージ名>
上記の例だと、9000がホスト側のポート、8000がコンテナ側のポート番号です。
--rmオプション
コンテナ終了時に自動的に破棄してくれるオプションです。
デフォルトだとコンテナを終了しても破棄されず残った状態になっているため不要なものは明示的に削除する必要がありますが、--rmオプションをつければ自動的に破棄してくれるため便利です。

docker container runと合わせてよく使うコマンド

最後にdocker container runコマンドと合わせてよく使うコマンドをまとめてました。

docker ps
docker psで実行中のコンテナ情報を一覧表示してくれます。

ちなみに、「docker ps -a」を実行(-aオプションをつける)と停止しているコンテナも含めた一覧情報を表示してくれます。 

docker container ls
docker container lsも基本的にdocker psと同じ情報を表示してくれます。
docker-machine ls
docker-machine lsコマンドは、virtualbox環境などの場合に実際にアクセスするURLの情報を確認するときによく使います。

デフォルトでは「192.168.99.100」が割り当てられています。
IPだけを知りたいときは、docker-machine ip defaultコマンドで確認できます。
$ docker-machine ip default
192.168.99.100

 

おすすめの記事