【Docker入門】docker container run コマンドまとめ。オプションも網羅

docker

こんにちは!システムエンジニアのオオイシです。

docker container run を使うとコンテナの生成と実行をサクッと実行できる便利なコマンドです。

今回はオプションを網羅しつつ使い方のサンプルを紹介していきます!

docker container run コマンドとは

docker container run」コマンドとは、イメージから新しいコンテナを生成してプロセス実行の一連の流れを同時に実行するコマンドです。

コマンド実行の度にコンテナが作成されるため、サクッとプログラムを実行したい場合によく使われます。

そのため、「–rm」オプションをつけてコンテナの終了と同時に自身を削除する使い方をよくやります。


docker container run centos:7 -it --rm /bin/bash

docker container run コマンドのオプション一覧

コマンドの構文とオプションの一覧です。

構文

docker container run [オプション] イメージ[:タグ|ダイジェスト値] [コマンド] [引数…]

オプション 説明
-t, –tty コンテナの標準出力をホストの標準出力に接続
-i, –interactive コンテナの標準入力をホストの標準入力に接続
-d, –detach バックグランドで実行
-e, –env list 環境変数を設定する
–env-file ファイルを指定して環境変数を設定
–name string コンテナに名前をつける
-h, –hostname string コンテナにホスト名をつける
–add-host=[ホスト名:ipアドレス] コンテナの/etc/hostsに定義する
-dns=[ipアドレス] コンテナのDNSサーバをIPで指定する
-u, –user string ユーザー名またはUIDを指定
-v, –volume ホストパス:コンテナのパス ホストのボリュームをコンテナマウント
-p, –publish [ホストのポート:コンテナのポート] ホストとコンテナのポートマッピング

次項では、これらのオプションに使い方について解説していきます。

CentOSを立ち上げてbashを使う(–it)

CentoOS7のコンテナの生成と立ち上げをしてコンテナのターミナルで操作します。

コンテナが終了すると共に、コンテナも削除します。

–it」はホストとコンテナの標準入出力をつなげるオプションでよく使います。

このように、CentoOSでターミナルの操作ができました。

Apacheをポートを指定してバックグラウンドで実行する(-d)(-p)

Apache Webサーバーをバックグランドで実行します。

ホストのポートは8080でコンテナは80でポートマッピングするサンプルを確認してみましょう。

このように、Apacheが起動できました。

ちなみ、実行中のコンテナにターミナルで接続するには「docker container exec」コマンドを使います。

 

ホストのディレクトリをコンテナにマウントする(-v)

ホストのディレクトリをコンテナにマウントするには「-v」オプションを使います。

使い方は3パターン。

使い方 説明
-v ホストのパス:コンテナのパス ホストのパスをコンテナにマウント。

コンテナにディレクトリがない場合は新規に作成する。

-v コンテナのパス Data Volume を指定したパスにマウントする。

Data Volume とは、コンテナ間でファイルの共有や再利用に使う。

-v コンテナ名 指定したコンテナのVolumeを全てマウントする。

ホストからで作成したファイルをコンテナから書き込み、さらに、ホストで確認するサンプルを実行してみます。

 

このように、ホストとコンテナでファイルの共有ができました。

コンテナに環境変数をホストから渡す

ホストで設定した環境変数をコンテナで出力してみます。

3通りのファイルの指定方法があります。

  • -e [変数名:値 の形式]
  • -e [ホストの環境変数名]
  • –env-file [環境変数を記述したファイル]
 

まとめ

いかがでしたか?

今回は、docker container run コマンドについて紹介いたしました。

docker container run コマンドはコンテナの生成と実行をサクッと実行したい場合によく使うので、ぜひ試してみてくださいね。