コンテナを起動したい(docker container run

// 推奨コマンド
$ docker container run オプション イメージ名

// 初期コマンド
$ docker run オプション イメージ名

docker container runコマンドで、指定したイメージ:タグのコンテナを起動できます。 タグを指定しない場合は最新版(latest)のイメージが適用されます。 ローカルにイメージがない場合はpullされます。

起動中のコンテナ情報はdocker container psで確認できます。

docker conteiner runコマンドにはたくさんのオプションがあります。 これらのオプションを使うことで、公開されているイメージを少しだけカスタマイズしてローカル開発ができます。

コマンドしたい

$ docker container run オプション イメージ名 コマンド

docker container runの末尾にコマンドを追加すると、 起動したコンテナの中でそのコマンドを実行できます。

すでに作成したコンテナで実行する場合は docker container execを使います。

コンテナに名前をつけたい(--name

1$ docker container run --name コンテナ名

--nameオプションで、コンテナに名前をつけることができます。 デフォルトではDockerがランダムなコンテナ名(≠イメージ名)を割り当てます。 僕はmy-イメージ名という名前をよく使います。

コンテナの状態を確認したり、停止や削除などのコンテナ操作をする際に、コンテナ名がついていると便利です。 ただし、同じ名前のコンテナは起動できないので、違う名前にするか、再起動する場合は、一度停止&削除する必要があります。

シェルしたい(-it

$ docker container run -it イメージ名 [コマンド]

// Ubuntuコンテナのデフォルトシェル(sh)を起動したい
$ docker container run -it ubuntu:latest

-itオプションを使って、コンテナ内のターミナル(sh)に接続できます。 すでに起動しているコンテナに接続する場合はdocker container execします。

ポートしたい(-p / --publish

$ docker container run -p ホスト側:コンテナ側

// localhost:8080 で(コンテナ:80に)アクセス
$ docker container run -p 8080:80 httpd:2.4

-pオプションを使って、ポート番号を指定し、port forwardingできます。 ポート番号の書式はホスト側:コンテナ側です。 http://localhost:ホスト側のポート番号でコンテナにアクセスできます。

バックグラウンドで起動したい(-d / --detach

1$ docker container run -d イメージ名

-dオプションを使って、コンテナをバックグラウンドで起動できます。

ボリュームを指定したい(-v / --volume

// named volume
$ docker container run -v ホスト側(named volume):コンテナ側

// bind volume
$ docker container run -v ホスト側(bind volume):コンテナ側

-vオプションを使って、データの保存先を指定できます。 保存先のパスはホスト側:コンテナ側の形式で記述します。 named volumebind volumeのどちらでも同じように指定できます。

作業ディレクトリを指定したい(-w / --workdir

1$ docker container run -w コンテナ内の作業ディレクトリ

デフォルトの作業ディレクトリ/(ルートディレクトリ)になっています。 -wオプションを使ってコンテナ内の作業ディレクトリを指定できます。

リファレンス