Contents はじめに Contents 3 4 Docker とは何か、なぜ注目されるのか ( hap 「 1 -01 注目を集める Docker Docke 「とは何か、なぜ注目されるのか 開発速度向上に役立つ Docker 1 5 急速に普及する Docke 「 Chapter 1 -02 コンテナ技術で軽量な仮想化を実現 20 コンテナ技術で OS レベル仮想化を実現 20 ハードウェアレベル仮想化 21 OS レベル仮想化 22 Linux カーネルの複数機能でコンテナを実現 23 イメージを柔軟に管理できるのが Docke 「の特徴 24 インフラ管理を変える [lmmutable lnfrast 「 ucture 」 ( 不変のインフラ ) 26 Docke 「の適用範囲を拡大するための周辺ツールの整備が進行中 2 / Part 1 様々な環境へのロ ocker のインストール Chapter 2-01 ロ ocke 「の動作に必要なもの Linux カーネルと Docke 「サーバー、 Docke 「クライアントが必要 Linux ディストリビューションの利用 Pa 2 29 0 0 2 3 3 3
Chapter 2-02 lJbuntu Server 1 4 , 04 にロ ocke 「をインストールする Chapter 2-04 Windows / OS X にロ ocker をインストールする スクリプトを使ったインストール手順 バッケージを使ったインストール手順 Red Hat Ente 「 prise Linux と互換性がある CentOS Chapter 2-03 CentOS 7 にロ ocker をインストールする Docke 「のアンインストール スクリプトを使ったインストール手順 バッケージを使ったインストール手順 Ubuntu は LTS 版を使うのがお勧め Docke 「の利用手順 OS X への Docker Toolbox インストール手順 Windows への Docke 「 T00 わ ox インストール手順 必要ソフトを一括インストールする Docker Toolbox Chapter 3-01 Part 3 docker コマンドによるイメージ取得と コンテナ稼働 ロ ocke 「で取り扱うイメージとコンテナ、プロセスの関係 コンテナとプロセスの関係 イメージとコンテナの関係 Chapter 3-02 イメージやコンテナの基本的な管理を体験する 2 つのモードがある docke 「コマンド サーバーモード ( デーモンモード ) での実行 クライアントモードでの実行 管理者権限を用いずに docke 「コマンドを実行するには 8 つのサブコマンドをまず覚えよう We に ome メッセージを表示するコンテナを稼働させる 自動的に割り当てられるコンテナ名の構成 Column 36 36 38 40 イ 2 イ 3 イ 3 イ 9 5 / 2 69 68 68 68 65 62 62 58 5 イ 50 イ 9
コンテナで 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
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
イメージを加工する 「 export 」「 impo 」で中間イメージを使わないイメージを生成する スクラッチからのイメージ生成 Chapter 4-02 Docke 「 f ⅱ e の記述やイメージ生成におけるポイント できるだけシンプルなイメージの生成を目指す コンテナは単機能かっ短命なものであるべき 可読性を考慮した記述にする 中間イメージの再利用に注意 余分なファイルを Docke 「サーバーにコピーしない Chapter 4-03 DockerfiIe に記述できる命令 べースイメージを指定する命令 (FROM) イメージにファイルをコピーする命令 (ADD 、 COPY) 環境変数やビルド変数を指定する命令 (ARG 、 ENV) コンテナ起動時に実行するコマンドを指定する命令 (CMD 、 ENTRYPOINT) コンテナが通信を待ち受ける通信ボート番号を指定する命令 (EXPOSE) イメージに付加する管理情報 ( メタデータ ) を指定する命令 (LABEL) イメージ作成者の名前を指定する命令 (MAINTAINER) 生成したイメージを元に再度イメージをビルドする際に実行する コマンドを指定 (ONBUILD) 作業用コンテナ内で実行するコマンドを指定する命令 (RUN) コンテナの停止に使う信号 ( シグナル ) の種類を指定する命令 (STOPSIGNAL) イメージ作成時やコンテナ実行時のユーザーを指定する命令 (USER) ホストの一時ディレクトリを割り当てるディレクトリを指定する命令 (VOLUME) イメージ作成時やコンテナ実行時のカレントディレクトリを指定する命令 (WORKD 旧 ) ( ト。 p 断 4-04 プライベートレジストリの構築と利用 Column プライベートレジストリをキャッシュレジストリとして利用する プライベートレジストリの利用 プライベートレジストリの構築 1 85 1 86 1 8 / 18 / 1 / / 1 / / 1 / 8 レ 8 1 80 1 8 イ 1 88 189 1 89 190 1 90 1 92 1 92 1 95 1 96 9
複数コンテナの連携と Docker Compose Pa 5 INDEX docker-compose. yml ファイルの記述例 docker-compose コマンドを使った管理手順 docker-compose. yml ファイルの書式 Docke 「 Compose の概要とインストール Chapter 5-02 Docker Compose を用いた複数コンテナの連携管理 コンテナの起動順序を守る必要がある 相手コンテナの情報を設定する -- ⅱ nk オプション バージョン 1 .9 からマルチホスト連携が可能に Docke 「のネットワーク chapter 5-01 複数のコンテナを連携させる一ⅱ nk オプション を使ったサービス管理 200 200 201 202 205 206 206 208 21 3 216 1 99 222
著者紹介 末安泰三 ( すえやすたいぞう ) 1971 年 2 月、福岡県生まれのフリーランスライター。主な関心領域は、凵 nux や Android などに代表されるオープン ソースソフトウェア。系出版社に勤務していた 1998 年前後に、 Linux 情報サイトの立ち上げや Linux 専門誌の創刊 などに携わった。以後は、その凵 nux 専門誌の編集記者として活動し、 2006 年に独立してフリーランスライターに 独立後は、 Linux カーネルやファイルシステム、仮想化ソフトウェアといったシステムコンボーネント関連の動向記 事や技術解説記事を主に手掛けている。 2015 年 12 月時点で記事を連載中の T 雑誌は「日経 LinuxJ と「日経コミュ二 現在、 3 匹の猫と共に千葉外房に在住。 ケーション」である。 カ ん にゆうも Docker 入門 2015 年 12 月 31 日初版第 1 刷発行 著者 装丁 発行人 編集人 発行所 印刷所 すえやすたいぞう 末安泰三 植竹裕 柳澤淳一 久保田賢二 株式会社ソーテック社 〒 102 ー 0072 東京都千代田区飯田橋 4-9 ー 5 スギタビル 4F 電話 ( 注文専用 ) 03 ー 3262 ー 5320 FAX 03-3262-5326 大日本印刷株式会社 ◎ 2015 SUEYASU Taizo Printed in Japan lSBN978 ー 4-8007 ー 1091 ー 8 本書の一部または全部について個人で使用する以外著作権上、株式会社ソーテック社および著作権者の承諾を得ず に無断で複写・複製することは禁じられています。 本書に対する質問は電話では受け付けておりません。また、本書の内容とは関係のないパソコンやソフトなどの前提 となる操作方法についての質問にはお答えできません。 内容の誤り、内容についての質問がこざいましたら切手・返信用封筒を同封のうえ、弊社までこ送付ください。 乱丁・落丁本はお取り替え致します。 本書のこ感想・こ意見・こ指摘は http://www.sotechsha. CO. j p/dokusha/ にて受け付けております。 web サイトでは質問は一切受け付けておりません。