( hapte 「 3-03 イメージ管理用サブコマンド ( l) ーローカル環境でのイメージ管理サブコマンド 例えば、「 ubuntu:14.04 」で示されるローカルイメージのリボジトリ名とタグ名を 「 sueyasu/ubuntu:1 4.04 」に変更するには、次のように tag サブコマンドを実行しま す。 $ docker tag ubuntu : 14 . 04 sueyasu/ubuntu : 14 . 04 Enter 新しく指定するリボジトリ名には、レジストリ情報を付加することもできます。レジス トリ情報を付加する場合は、次の書式で新しいイメージの名前を指定します。 ーレジスリのホス名またな工アレスレシスリのー番号ノ刀リジリ名タク名ノ レジストリ情報を付与しない場合は、 Docke 「 Hub の情報が暗黙のうちに指定されま 例えば、イメージ旧「 Oe5574283393 」のローカルイメージに、旧アドレス 「 ] 92. ] 68. O. ] 46 」、ボート番号「 5000 」で稼働するプライベートレジストリの情報な どを付与したい場合には、次のように tag サフコマンドを実行します。 Pa ュ 3 す。 $ docker tag 0e5574283393 192.168.0.146 : 5000 / sueyasu / ubuntu : 14 . 04 E nte 「 イメージを削除する ( rmi サプコマンド ) イメージをローカル環境から削除するのに使うのが「 mi サブコマンドです。「 mi サブコ マンドの基本的な書式は、次の通りです。 docker rmi ーオプションノイメージーイメージ ... ノ 複数のイメージを指定して、まとめて破棄することもできます。 オプションを指定しない場合は、 ( 一時停止中を含めた ) 稼働中のコンテナに関連したイ メージは破棄できません。稼働中のコンテナに関連したイメージを破棄する場合は、 -f ま たは一 fo 「 ce オプションを指定します。 また、 -- no - p 「 une オプションを指定しない場合は、削除対象のイメージが使用する ( 依 存関係にある ) 中間イメージもまとめて削除されます。削除対象のイメージが他のイメー ジの中間イメージとして使用されている場合は、イメージからリボジトリ名やタグ名など の情報だけを削除し、イメージそのものは残されます。 93
Chapter 3-06 コンテナ管理用サプコマンド ( 1 ) ーコンテナの作成や削除に関するサブコマンド コンテナの作成や削除に関するサブコマンド コンテナを作成する (run 、 c 「 eate サブコマンド ) インタラクティブな操作を可能にする ( 「 un サブコマンド、 - it オプション ) プロセスをバックグラウンド実行する ( run サブコマンド、 - d オプション ) 外部からコンテナへの通信を可能にする コンテナにホストのディレクトリをマウントする ( 「 un サブコマンド、 - v オプション ) コンテナを削除する ( 「 m サブコマンド ) Chapter 3-07 コンテナ管理用サプコマンド ( 2 ) ーコンテナ情報を表示・変更するサブコマンド コンテナの情報を調べる ( ps サブコマンド ) コンテナの名前を変更する ( 「 ename サブコマンド ) コンテナの通信ポートに対するホストのボート転送設定を表示する ( po 「 t サブコマンド ) イメージやコンテナの詳細情報を表示する (inspect サブコマンド ) コンテナのリソース使用状況を表示する (stats サブコマンド ) Chapter 3-08 コンテナ管理用サプコマンド ( 3 ) - コンテナ内で実行するプロセスに関連するサブコマンド 稼働中のコンテナ内でコマンドを実行する ( exec サブコマンド ) 稼働中のコンテナ内のプロセスに接続する (attach サブコマンド ) コンテナ内の全プロセスを一時停止させる (pause サブコマンド ) コンテナ内の全プロセスを再稼働させる (unpause サブコマンド ) コンテナ内のプロセスの出力を表示する (logs サブコマンド ) コンテナ内で稼働するプロセスの情報を表示する ( top サブコマンド ) Chapter 3-09 コンテナ管理用サプコマンド ( 4 ) ーコンテナの実行管理に関するサブコマンド コンテナを停止させる ( st 叩サブコマンド ) コンテナを停止させたり、シグナルを送信したりする ( k Ⅲサブコマンド ) コンテナ停止を待ち受けて終了コードを表示する ( wait サブコマンド ) 1 イイ 144 1 イ 5 凵 6 123 1 24 1 25 1 28 1 31 1 32 132 1 33 1 3 イ 1 35 1 3 / 1 38 1 38 1 39 凵 0 141 1 イ 2
Chapter 3-10 Chapter 3-11 Chapter 4-01 Part 4 8 停止中のコンテナを稼働させる ( sta はサブコマンド ) 稼働中のコンテナを停止して再稼働する (restart サブコマンド ) コンテナ管理用サプコマンド ( 5 ) ーコンテナのファイルシステムに関するサブコマンド コンテナとクライアント環境の間でファイルをコピーする ( cp サブコマンド ) コンテナのファイルシステムに加えられた変更を表示する ( di 幵サブコマンド ) コンテナのファイルシステムデータを ta 「アーカイブ形式で出力する ( expo 「 t サブコマンド ) ロ ocke 「サーバーの動作制御に用いるサプコマンド ストレージドライバの切り替え手順 各ストレージバックエンドの特徴 ストレージドライバを指定する - s オプション Docke 「クライアントとの通信手段を指定する - H オプション Docke 「サーバーの起動オプション Docke 「サーバー環境の初期化 init サーバーの種類で変わる実行制御方法 Docke 「サーバーの起動オプションを恒久的に設定する Chapter 3-12 ロ ocker サーバーの情報取得などに使うサプコマンド Docker クライアントと Docke 「サーバーのバージョン情報を表示する ( ve 「 sion サブコマンド ) Docke 「サーバーの実行状態を表示する ( info サブコマンド ) ロ ockerf ⅱ e からのイメージ生成と プライベートレジストリの活用 ロ ockerf ⅱ e の概要とイメージ生成の手順 DockerfiIe の基本書式 既存イメージに基づくイメージ生成 14 / 1 イ / 149 149 150 151 1 52 152 ・ 153 154 1 5 / 159 160 162 163 1 6 イ 164 165 1 6 / 1 68 168 170
Pa 3 docke 「コマンドによるイメージ取得とコンテナ稼働 Chapter3-06 コンテナ管理用サブコマンド ( 1 ) ーコンテナの作成や削除に関するサブコマンド ここからは、 docke 「コマンドのコンテナ管理用サブコマンドについて解説します。コンテナの作成 とコマンド実行を指示する「 un サブコマンドの解説を中心に、コンテナの実行管理用のサブコマンド や、コンテナの各種情報を表示するサブコマンドなどについても紹介します。 コンテナの作成や削除に関するサプコマンド 最初にコンテナの作成や削除に関するサブコマンドを紹介します。イメージから新しい コンテナを作成して実行する「 un サブコマンド、「 un サブコマンドと似ているがコンテナ 実行までは行わない c 「 eate サブコマンド、コンテナを削除する「 m サプコマンドについて 解説します。 コンテナを作成する (run 、 c 「 eate サプコマンド ) イメージに基づいて新規にコンテナを作成するのに使用するのが、「 un サブコマンドと create サブコマンドです。両者の働きはほほ、同じですが、「 un サブコマンドが作成したコ ンテナの実行までを行うのに対し、 c 「 eate サブコマンドは作成したコンテナを実行せずに 停止させたままにするという違いがあります。 これらのサブコマンドは、 docke 「コマンドによる操作の中核を担います。特に「 un サブ コマンドは、ローカル環境 ( Docke 「サーバーを実行しているホスト環境 ) に取得済みの イメージを基に新たなコンテナを作成して、それを実行できます。つまり、作成したコン テナ内で特定のプロセスを稼働できます。いすれのサブコマンドも、指定したイメージが 取得済みでない場合は、レジストリからイメージを取得する作業も実施します。 「 un サブコマンドと c 「 eate サブコマンドには多数のオプションがあり、非常に多くの 制御が可能です。両サブコマンドで利用できる主なオプションには、 3-6-1 のようなもの があります。
( hapte 「 3-12 DOCke 「サーバーの情報取得などに使うサブコマンド ve 「 sion サブコマンドに指定できる主なオプションを 3-12-2 に挙げました。 >3-12-2 version サプコマンドに指定できる主なオプション 短縮オプションオプション指定できる値 概要 GO 言語のテンプレートに従って出力を調整 GO 言語のテンプする。例えば「 --format Ⅲ . Serve 「 . Versi on } } ' 」と指定すると、 Docke 「サーバーのバ ージョン情報だけを表示できる --format Pa ュ 3 ロ ocker サーバーの実行状態を表示する (info サプコマンド ) Docke 「サーバーの実行状態を表示するのに使用するのが、 info サブコマンドです。 info サブコマンドの書式は次の通りです。 docker version オプゞ / ョンノ 実行すると、 3-12-3 のような情報が表示されます。 Docke 「サーバーが管理しているコ ンテナやイメージの数のほか、利用しているドライバの種類、 Linux カーネルのバージョ ン、 OS 名、利用可能な CPU 数やメモリー量などが表示されます。 >3-12-3 info サプコマンドによる情報表示例 $ docke 「 i nf 0 Containe 「 s: 0 I mages : 0 Server Version: 1 . 9 . 0 st 0 rage D 「 i ve 「 : dev i cemappe 「 Po 引 Name : vg0 -dat a Po 引 Blocksize: 65 . 54 kB Base Devi ce S i ze : 107.4 田 Back i ng F Ⅱ esyst em : xf s Data file: Metadata file: Dat a Space lJsed : 1 .821 GB Data Space To 士 a に 107.4 GB Data Space AvaiIabIe: 105.6 田 Met 記 a 士 a Space lJsed : 2.384 Met adat a Space Tot a に 16.98 GB Metadata Space AvaiIabIe: 16.98 GB Udev Sync Suppo 「士 ed : 士 rue Def e 「 red Removal Enab led : f a lse 次ページへ続く 1 65
コンテナで Web サーバーを稼働させる コンテナ内で稼働する Web サーバーでコンテンツを公開する コンテナで Ubuntu を稼働させてカスタムイメージを作成する SSH サーバーを起動するカスタムイメージの作成 古いカーネルでは、コンテナ内で PAM を利用できない Docker 内で Linux ディストリビューションのサービスを稼働させる ( hapte 「 3-03 イメージ管理用サプコマンド ( 1 ) ーローカル環境でのイメージ管理サブコマンド ローカル環境でのイメージ管理に使用するサブコマンド ローカル環境のイメージの情報を表示する (images サブコマンド ) イメージにリポジトリ名やタグ名を付与する ( tag サブコマンド ) イメージを削除する ( 「 mi サブコマンド ) イメージやコンテナの詳細情報を表示する (inspect サブコマンド ) イメージの作成履歴を表示する ( histo Ⅳサブコマンド ) chapter 3-04 イメージ管理用サプコマンド ( 2 ) ーイメージの作成や保存に関するサブコマンド 98 コンテナからイメージを生成する ( commit サブコマンド ) 98 Docke ⅱ e に基づいてイメージを作成する ( bu ⅱ d サブコマンド ) 100 イメージを ta 「アーカイブ形式で保存 ( save サブコマンド ) 102 tar アーカイブデータからイメージを復元 (load サブコマンド ) 104 ファイルシステムデータからイメージを作成する ( impo 「 t サブコマンド ) 1 OÅ impo はサブコマンドでイメージ化するファイルシステムデータの準備方法 106 chapter 3-05 イメージ管理用サプコマンド ( 3 ) ーレジストリを使ったイメージ操作に関するサブコマンド レジストリにログインまたはログアウトする (login 、 gout サブコマンド ) レジストリからイメージを取得する (pull 、「 un サブコマンド ) レジストリにイメージを登録する ( push サブコマンド ) レジストリのリボジトリを検索する ( sea 「 ch サブコマンド ) リポジトリにあるタグ名の調査方法 ( cu 「ロマンド ) バージョン 2 系の A 曰を実装するレジストリでは、 sea 「 ch サブコマンドを利用できない / 0 2 5 0 0 マ / 8 8 8 9 ・ 9 ・ 2 っ 0 -4 ′ 0 9 9 ・ 9 ・ 9 ・ 9 9 9 ・ Column 1 0 / 10 / 108 1 1 0 Column 6
Pa 3 docke 「コマンドによるイメージ取得とコンテナ稼働 >3-8-2 attach サブコマンドに指定できる主なオプション --no-stdin 短縮オプションオプション --Slg-P 「 OXY 指定できる値 true または false true または fa e 概要 標準入力をアタッチしない 非 TTY モードの場合、すべてのシグナ ルをプロセスに送る。 SIGHLD 、 SIGKI LL 、 S 旧 STOP はプロキシされない。既 定値は t 「 ue コンテナ内の全プロセスを一時停止させる (pause サプコマンド ) コンテナを稼働状態にしたまま、コンテナ内の全プロセスを一時停止させるのに使用す るのが、 pause サブコマンドです。 pause サブコマンドの基本的な書式は、次の通りで す。 docker pause コンテナーコンテナ ... ノ コンテナは、コンテナ旧またはコンテナ名で指定します。複数のコンテナを指定するこ ともできます。 pause サブコマンドによる一時停止は、 Linux カーネルの「 cgroup freezer 」という仕 組みによって実現されます。コンテナのすべての状態を保持したまま一時停止させること ができ、後述する unpause サブコマンドによって、一時停止前の状態に完全に復帰でき るのが特徴です。何らかのサービスを提供するコンテナを、特定の時間だけ稼働させたい 場合などに活用できます。 pause サブコマンドには、指定できるオプションはありません。 コンテナ内の全プロセスを再稼働させる (unpause サプコマンド ) pause サブコマンドで一時停止させたコンテナ内の全プロセスを再稼働させるのに使 うのが、 unpause サブコマンドです。 unpause サブコマンドの基本的な書式は、次の通 docker unpause コンテナーコンテナ . ・・ノ りです。
( hap e ′ 3-08 コンテナ管理用サプコマンド ( 3 ) ーコンテナ内で実行するプロセスに関連するサブコマンド 概要 指定できる値 オプション 短縮オプション 仮想 TTY 端末を割り当てる t 「 ue または f 引 se コマンドを実行するユーザー ( とグル ユーザー名またはユ ープ ) を指定。グループを指定する場 ーザー ID ( オプショ 合は、「ユーザー ID : グループ ID 」のよ ンでグループ名また はグループ ID ) うにコロンで区切る 稼働中のコンテナ内のプロセスに接続する (attach サプコマンド ) コンテナ内で最初に起動したプロセスの標準入出力を仮想コンソールの標準入出力に接 続するのに使うのが、 attach サブコマンドです。 atta 曲サブコマンドの基本的な書式は、 次の通りです。 docker attach ーオプションノコ ) / テナ コンテナは、コンテナ ID またはコンテナ名で指定します。停止中のコンテナに対して attach サブコマンドを実行した場合には、エラーメッセージが表示されて接続に失敗し ます。 attach サブコマンドを利用すると、コンテナ内のプロセスの出力を仮想コンソールに 表示したり、仮想コンソールからの入力をプロセスに渡すことができます。コンテナ内で 最初にシェルを起動している場合は、仮想コンソールからシェルを使って各種のコマンド 操作ができるようになります。 attach サブコマンドでプロセスに接続した状態から、コマンドプロンプトに復帰する には、キーと回キーを同時に押し下げたあと、キーと回キーを同時に押し下け ます。コンテナ内で最初に起動したのがシェルだった場合、 exit コマンドでシェルを終了 させてしまうと、コンテナ自体が停止してしまうため注意が必要です。 atta 曲サブコマンドに指定できる主なオプションは 3-8-2 の通りです。 --ttY -t --use 「 Pa ュ 3 1 39
( ト apte 「 3-09 コンテナ管理用サブコマンド ( 4 ) ーコンテナの実行管理に関するサブコマンド 停止中のコンテナを稼働させる (start サプコマンド ) 停止中のコンテナを再稼働させるのに使うのが、 sta サブコマンドです。 sta 「 t サブコ マンドの基本的な書式は、次の通りです。 docker start ーオプションノコンテナーコンテナ ... ノ コンテナは、コンテナ名もしくはコンテナ旧で指定します。複数のコンテナを指定し て、まとめて再稼働させることもできます。 停止中のコンテナに保持されていた設定は、そのまま再稼働したコンテナに引き継がれ ます。例えば、自動的にボート転送設定を行う - P オプション付きで停止前のコンテナを実 行していた場合、それは再稼働したコンテナでも有効になります。ただし、再稼働の際に ボート転送設定が再度行われることになるため、ホスト側の待ち受けボート番号は変わっ てしまうことに注意が必要です。 - ai オプションを指定することで、 attach サブコマンドのように再稼働したコンテナ内 のプロセスに接続できます。 sta 「 t サブコマンドに指定できる主なオプションは 3-9-4 の通りです。 sta サブコマンドに指定できる主なオプション 3-9-4 Pa ュ 3 短縮オプションオプション 指定できる値 概要 コンテナの標準出力と標準工ラーをア タッチし、すべてのシグナルをプロセ true または f 引 se スに送る t 「 ue または f 引 se コンテナの標準入力をアタッチする 稼働中のコンテナを停止して再稼働する (restart サプコマンド ) 稼働中のコンテナを停止して再稼働するのに使うのが、「 esta 「 t サブコマンドです ostop サブコマンドによるコンテナの停止と、 sta 「 t サブコマンドによるコンテナの再稼働を一 度にまとめて実行するサブコマンドです。 「 esta 「 t サブコマンドの基本的な書式は、次の通りです。 --attach --inte 「 active 1 イ /
( h 。 p e 「 3-06 コンテナ管理用サブコマンド ( 1) ーコンテナの作成や削除に関するサブコマンド -entrypoint=/bin/bash ubuntu /bin/echo " 123 " E nter $ docker run しかし、「 /bin/echo: cannot execute bina 「 Y file 」といったエラーメッセージが表示 され、期待した動作にはなりません。これは、コンテナ内で「 /bin/bash /bin/echo " ] 23 " 」というコマンドを実行しようとしてエラーになったからです。 一方、次のように指定すると正しく動作します。 Pa ュ 3 $ docker run --entrypoint=/bin/echo ubuntu " 123 " Enter ロイメージの ENTRYPO T 設定を調べる (inspect サプコマンド ) イメージの ENT 日 YP 団 NT 設定の内容は、次の書式で inspect サブコマンドを指定し て docke 「コマンドを実行すると分かります ( イメージはローカルに取得済みである必要 があります ) 。 docker inspect -f ' { { . config. Entrypoint} } ' イメー多′ 無指定時には「 < n ⅱ > 」と表示されます。 インタラクテイプな操作を可能にする ( run サプコマンド、 - it オプション ) コンテナ内でシェルを稼働させてコマンド操作をする、などといったインタラクティブ な操作をする場合には、「 un サブコマンドに - it オプションを指定する必要があります。こ れは、コンテナ内で実行するプロセスの標準入力をオープンし続ける - i オプションと、コ ンテナに仮想コンソール ( 制御卓 ) を割り当てて、それをコンテナ内で実行するプロセス の標準入力に接続する - t オプションとを同時に指定するものです。「 -i -t 」のように分けて 指定しても同じ動作になります。 例えば、 lJbuntu の公式イメージからコンテナを作成し、そのコンテナ内でイメージの 既定コマンドに設定されているシェル (/bin/bash) を稼働させてインタラクティブな操 作をする場合には、次のように「 un サブコマンドを実行します。 $ docker run -it ubuntu Enter これによってコンテナ内でシェルが起動し、任意のコマンドを実行したり、ファイル操 1 23