起動 - みる会図書館


検索対象: Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!
70件見つかりました。

1. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

( hap e 「 3-11 DOCke 「サーバ - の動作制御に用いるサブコマンド け多く確保しておいた方が問題が生じにくいため、特に支障がない場合は ] 6G バイトの 論理ボリュームを使用するようにした方が良いでしよう。 作成した論理ボリュームを使用するように Docke 「サーバーに指示するには、次のよう に Docke 「サーバーを起動します。 ロ ocke 「サーバーの起動オプションを恒久的に設定する Docke 「サーバーを手動で起動するのではなく、自動起動するように設定している場合 は、起動オプションを設定ファイルに記述します。設定ファイルの場所や名前は、 Linux ディストリビューションによって異なります。 lJbuntu を利用している場合は、 / etc / defau Ⅳ docke 「ファイルにオプションを記述し ます。同ファイルに以下の書式でオプションを記述します。 DOCKER OPTS = " オプション仲その値 " 例えば、「 overlay 」というストレージドライバを使用するよう指示する場合は、 「 DOCKER_OPTS="-s overlay" 」という行を /etc/default/docke 「ファイルに記述し ます。「 DOCKER_OPTS 」の前に空白を入れないように行頭から記述してください。 Red Hat Ente 「 p 「 ise Linux や CentOS 、 Fedo 「 a を利用している場合には、 /etc/ sysconfig/docke 「ファイルに起動オプションを記述します。書式は Ubuntu とは異な り、次のようになります。 OPT 工 ONS = " オプション仲その値 " Docke 「を Docke 「社が配市するスクリプトを使ってインストールした場合などには、 上記のどちらのファイルも存在していないことがあります。ますは、ファイルを作成して オプション設定を記述してみましよう。 Docke 「サーバーを再起動して設定が反映されれ ば良し、そうでなければ、 Docke 「サーバーを起動するための設定ファイルを直接書き換 えるなどの対処をする必要があります。 筆者が経験した範囲では、 init サーバーに systemd を採用している環境で、そうした書 き換えが必要になりました。書き換えるのは、 /us 「 /lib/systemd/system/docke 「 . se Ⅳ ice ファイルです。書き換え例は C ⅱ apte 「 2 ー 08 の p. 48 を参照してください $ sudo docker daemon -s devicemapper --storage-opt 面 . thinp001dev=/dev/mapper/vg0-data Enter Pa ュ 3 1 63

2. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

( hap を e 「 2-04 Windows / OS X に Docke 「をインストールする docke 「 -machine コマンドでは、サブコマンドを指定することで Docke 「サーバーが稼 働する Vi 「 tua 旧 ox 仮想マシンを管理できます。主なサブコマンドは次の通りです。 仮想マシンの起動 $ docker-machine start 仮想マシン名 Pa ュ 2 E nter 仮想マシンの停止 $ docker-machine stop 仮想マシン名 Enter : 仮想マシンの稼動状態表示 $ docker-machine status 仮想マシン名 Enter 仮想マシンの旧アドレス表示 $ docker-machine ip 仮想マシン名 E nter 仮想マシンにログインする $ docker-machine ssh 仮想マシン名 Enter Docke 「の利用に必要な環境変数を調べる $ docker-machine env 仮想マシン名 Enter 仮想マシンの一覧を表示 $ docker-machine ls Enter ー Docker を利用できない場合の対処 Docke 「操作用の端末で docke 「コマンドを実行しても Docke 「サーバーと接続できな い場合は、 Vi 「 tua 旧 ox が正常に動作していないことが考えられます。 Vi 「 tua 旧 ox を単独 で実行して、登録されている「 defaultJ という仮想マシンを起動してみてください。問 題がある場合には、何か工ラーメッセージが表示されるはすです。 例えば、 2-4-5 のようなエラーメッセージが表示される場合は、仮想化支援機能付きの CPU を使っているにもかかわらす、 OS でそれが無効化されていることが考えられま す。 BIOS 設定画面で「 VT-x 」や「 AMD-V 」などの仮想化支援機能を有効化することで、 この問題は解決します。 59

3. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

Pa 5 複数コンテナの連携と Docke 「 Compose を使ったサービス管理 Docker Compose を用いた chapter5-02 複数コンテナの連携管理 Docke 「社が提供する「 Docker Compose 」というツールを利用すれば、複数コンテナの連携など のコンテナ管理が容易になります。ここでは、 Docker Compose のインストール方法や使用方法、 設定ファイルである「 docker-compose. ymlJ の書式について解説します。 Docker Compose の概要とインストール Chapte 「 5-01 で紹介した通り、複数のコンテナを連携して稼働させる場合はコンテナ の起動順序に注意する必要があります。また、コンテナの連携時には一般に、複数の環境 変数を設定したり、データ保存ディレクトリを設定したりするために、多数のオプション を指定してコンテナを起動する必要があります。これらをきちんと守りながらコンテナを 起動するのは結構面倒です。 コンテナの起動だけに着目すれば、シェルスクリプトにコンテナ起動用のコマンドを順 に記述しておき、それを実行することで手間を削減できます。しかしこの方法では、起動 後のコンテナの管理はできません。 docke 「コマンドを使った管理は可能ですが、コンテ ナの数が増えると、あるサービスにどのコンテナが関連しているのかが分かりづらくな り、管理が次第に難しくなります。 そうした問題を解消するために、 Docke 「社では「 Docke 「 Compose 」というコンテ ナ管理ツールを提供しています。 Docke 「 Compose を利用することで、複数のコンテナ を効率的に管理できるようになります。具体的には、サービスを構成するコンテナの実行 に必要な情報を記述した設定ファイルを参照することで、サービスを構成するコンテナ群 をまとめて起動、停止させたり、コンテナ群の実行状態を調べたりといった作業を可能に します。これによって管理作業の負荷を大幅に低減できます。 なお、 Docke 「 Compose は、開発当初は「 Fig 」と呼ばれるサードバーティ製ツールで した。 Fig の開発元である英 O 「 cha 「 d LabO 「 at0 「 ies 社が、 2014 年に DOCke 「社によっ て買収されたことにより、 Docke 「の公式ツールとなり現在の名前になりました。 201 5 年 ] 1 月末時点での Docke 「 Compose のバージョンは ] .5. ] です。同バージョ ンの DOCke 「 Compose は、バージョン ] .7. ] 以降の DOCke 「サーバーに対応していま す。 206

4. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

Pa 4 Docke 「 f ⅱ e からのイメージ生成とプライベートレジストリの活用 設定ファイルの編集が終わったら、それをリポジトリ情報を格納するディレクトリ ( こ こでは /va 「 /lib/docke 「 - 「 egist 「 y を想定 ) にコピーしてから、プライベートレジストリを 以下の手順で起動します。 $ docker run -d -p 5000 : 5000 -v /var/lib/docker-registry: /var/lib/registry -restart=always registry : 2 /var/lib/registry/config. 1 Enter これで、プライベートレジストリを Docke 「 Hub のプロキシレジストリとして稼働で きました。 ー Docker サーバーの設定変更 稼働させたプロキシレジストリを Docke 「サーバーで利用するには、 Docke 「サーバー の起動時にト「 egist 「 y-mi 「「 o 「 =https://プロキシレジストリの IP アドレス : ポート番号」 というオプションを指定する必要があります。プロキシレジストリで TLS 通信を有効に していない場合は、起動オプションを「一「 egist 「 y - mi 「「 o 「 = http : 〃プロキシレジストリの 旧アドレス : ボート番号」に変更し、同時に -- insecu 「 e - 「 egist 「 y オプションも指定する必 要があります。 Docke 「サーバーの起動後、 Docke 「 Hub がイメージをダウンロードしてから、 curl コ マンドを使ってプロキシレジストリにそのイメージが登録されていることを確認してみて ください。登録されているようであれば、無事にキャッシュレジストリとして稼働してい ます。 1 98

5. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

Pa 3 docke 「コマンドによるイメージ取得とコンテナ稼働 Docker サーバーの動作制御に 用いるサブコマンド Docke 「サーバーの動作は、さまざまな起動オプションによって制御できます。ここでは、 Docke 「サ ーバーの起動オプションや実行制御方法、動作制御に用いるサブコマンドなどについて紹介します。 init サーバーの種類で変わる実行制御方法 Linux カーネルの機能を使って直接コンテナやイメージを管理する Docke 「サーバー は、何らかの Linux OS 環境 ( Linux ディストリビューション ) で稼働します。 Docke 「サ ーバーの起動や停止などの実行制御方法は、 Docke 「サーバーを稼働させている Linux デ イストリビューションによって異なります。もっと正確に言うと、 Linux ディストリビュ ーションが採用する init サーバーの種類によって変わります。 init サーバーとは、 Linux などの UNIX 系 OS において、システムの初期設定やプロセス 管理などを担当するサーバーです。 Linux ディストリビューションには、 201 5 年時点で 主に「 SysV init 」「 Upstart 」「 systemd 」の 3 種類の init サーバーのいずれかが採用さ れています。多くの Linux ディストリビューションが systemd に移行中で、例えば、 Ubuntu は ] 5.04 以降、 FedO 「 a は ] 5 以降、 Red Hat Ente 「 p 「 ise Linux や CentOS は 7 以降で systemd を採用しています。 SysV init や Upsta 「 t を採用する環境では、 Docke 「サーバーの実行制御に service コ マンドを使用します。一方、 systemd を採用する環境では、 systemctl コマンドを使用 します。それぞれのコマンド実行例を 3-11-1 に挙げました。 3-11-1 init サーバーの種類による Docker サーバーの実行制御方法の違い chapter3-1 1 制御内容 152 再起動 Docke 「サーバーの 停止 Docke 「サーバーの 起動 Docke 「サーバーの SysV init または Upsta を採用する 環境でのコマンド実行例 sudo S udO S udO servxce serVICe docker docker docker start[Éö@?] s セ op restart[Éö@ systemd を採用する環境での コマンド実行例 $ sudO systemctl start docker. $ sudO systemctl stop docker. $ sudO systemctl restart docker. 次ページへ続く

6. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

( hap 「 5-01 複数のコンテナを連携させる -- ⅱ nk オプション コンテナの起動順序を守る必要がある リンクの役割は、あるコンテナからあるコンテナに対する通信を容易にするための情報 を設定することです。それ以外の複雑な処理は一切しません。そのため、利用に際して特 に問題になるようなことは 1 つを除いてありません。 唯一、注意すべき点は、連携させるコンテナの起動順序をきちんと守らなければならな いということです。前述した通り、一ⅱ nk オプションによるリンク指示は、すでに稼働して いるコンテナを対象にした場合だけ有効です。そのため、リンク対象となるコンテナは、 必すリンク元のコンテナよりも先に起動しておかねばなりません。 ロ複数のコンテナを利用する複雑なサービスを管理するためのツール 利用するコンテナの数が少ない場合は、管理者が意識することや、シェルスクリプトの 利用などによって、特定の順序でコンテナを稼働させることは難しくありません。しかし、 コンテナの数が増えたり、コンテナ間の関係が複雑化したりすると次第に管理が難しくな ってきます。 Docke 「社は、こうした問題に対処するために、「 Docker Compose 」というコンテナ 管理ツールを提供しています。他にも、米 CenturyLink 社が提供する「 Panamax 」とい うコンテナ管理ツールなどもあります。こうしたツールを活用することで、複数のコンテ ナを連携させたサービスの運用を効率化できます。 Pa ュ 5 205

7. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

( h 。 p e 「 3-02 イメージやコンテナの基本的な管理を体験する を持つコンテナを生成できます。 >3-2-13 生成したイメージを images サブコマンドで確認した例 $ dOCke 「 i mages ・ REPOS I TORY ubunt u htt pd ubunt u hello-world Ⅱ ) 1 ー 1 ー cn ・ ・ 1 ー 1 ー 1 ー ^ 材し CREATED 8 seconds ago 3 days ago 2 weeks ago 3 weeks ago I MAGE I D C641d0a1f94a 2682dbdee525 1d073211C498 0a6ba66e537a TAG 14 . 04 ー 20151109 2 . 2 . 31 1 4 . 04 lat est Pa ュ 3 生成したカスタムイメージからコンテナを起動して、インストールされているバッケー ジの情報を dpkg コマンドで調べた様子を 3-2-14 に挙げました。先ほどインストールし た ntpdate パッケージがコンテナ環境に存在することが分かります。 >3-2-14 カスタムイメージから作成したコンテナのバッケージを調べた結果 $ docker run -it mtu : 14.04 -20151109 /bin/bash 「oot@bl dC8746d448 : / # dpkg ヨ ntpdate Des i red :lhknown/ I nst a Ⅱ /Remove/Pu rge/Ho 旧 ー Status:Not/Inst/Conf -f Ⅱ es/Unpacked/haI F-conf/Ha 鼾 - i nst/t 「 ig-aWa i t/T 「 ig-pend レ E 「「 ? : (none)/Re inst- requ i red (Status, E 「「 : uppercase:bad) Ⅱ / Name Årchitecture vers i 1 : 4.2.6. p5 + dfsg -3 u amd64 i i ntpdate r00 士 1 dC8746d448 : / # Descript i61 client fo 「 setting system time from NTP servers SSH サーバーを起動するカスタムイメージの作成 ソフトウェアパッケージを最新版にするだけでなく、特定のサーバーを起動するカスタ ムイメージを Ubuntu ] 4.04 のイメージから作成してみましよう。ここでは、ユーザー 認証が必要な SSH (Secu 「 e SHeIl) サーバーを起動するカスタムイメージの作成を例に 作業手順を紹介します。 まずは Ubuntu ] 4.04 のコンテナでシェルを起動します。これには、先ほどと同じよ うに次の通り「 un サブコマンドを実行します。 $ docker run -it ubuntu : 14 . 04 /bin/bash Enter 続いて、コンテナ内でバッケージのアップデートと SSH サーバーソフトのインストー ルを行います。パッケージのアップデートは p. 83 と同様に apt - get コマンドを実行しま 85

8. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

Docke 「サーバーの動作制御に用いるサプコマンド Chapter3-11 systemd を採用する環境での コマンド実行例 SYSV init または Upstart を採用する 環境でのコマンド実行例 制御内容 $ sudO systemctl status docker. service $ sudO systemctl enable docker. service Docke 「サーバーの 状態表示 システム起動時に Docke 「サーバーを 自動起動する設定 を追加 システム起動時に Docke 「サーバーを 自動起動する設定 を削除 $ sudO service docker $ sudO chkconfig docker on Enter ( 上記が利用できない場合 ) $ sudO update-rc. d docker enable $ sudO chkconfig docker Off ( 上記が利用できない場合 ) $ sudO update-rc. d docker disable 自分の Linux 環境でどの種類の init サーバーが採用されているかは、 systemctl コマン ドの有無によって大まかに把握できます。 Pa ュ 3 $ sud0 systemctl disable docker. service $ which systemctl Enter というコマンドを実行して、「 /us 「 /bin/systemctIJ などと表示されれば systemd が 採用されている、何も表示されなければそれ以外の init サーバーが採用されていると判断 できます。 Docker サーバー環境の初期化 Docke 「サーバーは、取得したイメージや稼働したコンテナ関連のデータを、既定設定 では /va 「 /lib/docke 「ディレクトリ以下に保存します。そのため、同ディレクトリの内容 をすべて削除することでインストー丿レ直後の状態に戻す ( 初期化する ) ことができます。 Docke 「サーバー環境を初期化する場合は、ます Docke 「サーバーを停止させてから、 「 m コマンドで /va 「 /lib/docke 「ディレクトリの内容を削除します。その後、 Docke 「サー バーを再稼働すれば、初期化した状態から作業を始められます。 $ sud0 rm -rf /var/lib/docker/* Enter Docke 「サーバーを完全にアンインストールする場合には、 /va 「 /lib/docke 「ディレク トリそのものを消去して構いません。 逆に Docke 「サーバー環境のデータをバックアップしたい場合には、 /va 「 /lib/docke 「 ディレクトリ以下のデータを保存すると良いでしよう。 153

9. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

Pa 5 複数コンテナの連携と Docke 「 Compose を使ったサービス管理 社が提供するツールでクラスタ構成にする必要もあります。 作業手順については、 Docke 「社が提供する「 Get sta 「 ted with multi-host netwo 「 king 」 (https://docs.docke 「.com/engine/use 「 guide/netwo 「 king/get- sta 「 ted-overlay/) を参照してください。 相手コンテナの情報を設定する一ⅱ nk オプション 同一の仮想ネットワーク上のコンテナとの通信を容易にするため、 Docke 「は「リンク」 という手段を提供しています。コンテナの起動時に、すでに起動している通信相手のコン テナとのリンクを指示することで、通信相手のコンテナの IP アドレスや EXPOSE してい るボート番号などの情報がコンテナに設定されます。 リンクは、「 un サブコマンドに一ⅱ nk オプションを次の書式で指定することで実施できま す。リンク先のコンテナは、コンテナ名またはコンテナ旧を使って指定します。リンク先 のコンテナは稼働中でなければなりません。 docker run ーのオプションノ --link コンテナた別名ノイメージーコンド仲引数ノ 別名には、その仮想ネットワーク内で一意であれば、任意の文字列を設定できます。コ ンテナ名と同じ別名にしても構いません。別名指定を省略した場合は、コンテナを指定す るのに使った名前や ID がそのまま別名として設定されます。 ここで設定した別名は、通信相手のコンテナのホスト名として利用されます。わざわざ 別名を付けるのは、通信相手のコンテナがどのような名前で起動されていても対応可能に するためです。これによって、例えばデータを格納するコンテナと通信する場合、実際の コンテナ名がどうであるかにかかわらず「 db 」のような固定的なホスト名でアクセスでき るようになりますから、それを前提にアプリケーションを作成できます。 ー通信相手のコンテナの情報が設定される リンクによって具体的にどのような設定が施されるのでしようか。ーⅱ nk オプションによ って、コンテナ B とリンクしたコンテナ A を起動した場合に具体的に何が行われるのかを 示したのが、 5-1-2 です。 202

10. Docker入門 : コンテナ型仮想化技術Dockerの導入と実践! : Web管理者インフラ技術者必見!

( hap 2-03 CentOS 7 に DOCke 「をインストールする $ su # yum -y install docker # exit Enter Enter Enter Pa ュ 2 su コマンド実行時にはパスワードの入力を求められます。ここでは管理者 ( 「 oot) のバ スワードを入力します。正しいパスワードを入力すると「 oot ユーザーに切り替わり、コマ ンドプロンプトが「引から「 # 」に変わります。この状態で yum コマンドを実行してく ださい。 ー Docker サーバーの起動設定 パッケージをインストールしただけでは Docke 「サーバーが自動起動しません。そこで 次のコマンドを実行して Docke 「サーバーを自動起動する設定にした上で、サーバーを起 動します。 $ sudO systemctl enable docker. service $ sudO systemctl start docker. servxce Enter Enter なお、 sudo コマンドを使えない場合は、インストールの際と同様に su コマンドを使っ て作業してください。 ー Docke 「の動作確認手順 インターネットに接続した状態で、次のコマンドを実行すれば Docke 「が正しく稼働す るかどうかを確認できます。 $ sud0 docker -v = $ sudo docker run he110- wo て ld Enter Docke 「が正しく稼働していれば、 2-3-2 のような実行結果が得られます。最初のコマン ドで表示される Docke 「のバージョンは、バッケージが更新されると変わります。 CentOS 7. ] の場合は、 ] .8 系以降の比較的新しい Docke 「がインストールされます。 イ 5