検索 - みる会図書館

全データから 93961件ヒットしました。

WEB+DB PRESS Vol.86


ロ ロ ck 入 門 成 り 立 ち か ら 学 ぶ 基 本 と 全 体 像 第 1 章 例 を 紹 介 し ま す 。 あ る と 想 定 し て 進 め ま す 。 Docker は Linux の 技 術 を 利 用 し て お り 、 Linux 上 で な い と 動 き ま せ ん 。 そ の た め OS x 環 境 で は 作 成 し た イ メ ー ジ を 保 管 す る 場 所 を Docker レ ジ ス VirtualBox と い う ソ フ ト ウ ェ ア を 使 っ て 仮 想 的 に ト リ と 呼 び ま す 。 Linux を 動 か し 、 そ の 上 で Docker を 動 か し ま す 。 今 手 元 に あ る イ メ ー ジ を Docker レ ジ ス ト リ へ ア ッ プ 回 は OSX 上 で Docker 環 境 を 作 る た め の 公 式 ツ ー ル ロ ー ド し た り 、 反 対 に Docker レ ジ ス ト リ に 置 い て あ で あ る boot2docker を 使 い ま す (boot2docker 内 部 で る イ メ ー ジ を ダ ウ ン ロ ー ド す る こ と が で き ま す 。 誤 VirtuaIBox が 利 用 さ れ て い ま す ) 。 解 を 恐 れ ず に 言 え ば 、 Git リ ポ ジ ト リ を GitHub へ ま ず boot2docker を イ ン ス ト ー ル し ま す 。 ダ ウ ン ロ ー ド ベ ー シ 注 11 か ら Boot2Docke 「 - x. x. x. pkg push し た り clone し た り す る 感 じ で す 。 Docker レ ジ と ス ト リ に お い て も 、 一 つ 一 つ の イ メ ー ジ の 管 理 単 位 い う 名 前 の パ ッ ケ ー ジ を ダ ウ ン ロ ー ド し 、 イ ン ス ト を リ ポ ジ ト リ と 呼 び ま す 。 ー ル し て く だ さ い Docker レ ジ ス ト リ に は 、 誰 で も 利 用 で き る パ フ 。 リ さ っ そ く boot2docker を 起 動 し ま す 。 ッ ク リ ポ ジ ト リ と 、 特 定 の 人 の み が ア ク セ ス で き る $ b00t2docker init プ ラ イ ベ ー ト リ ポ ジ ト リ が あ り ま す 。 ま た 、 ホ ス テ $ b00t2docker start $ $(b00t2docker shellinit) イ ン グ サ ー ビ ス を 利 用 す る こ と も 、 自 社 サ ー バ に レ $ docke 「 -v Docker version 1.5. build a8a31ef ジ ス ト リ を 立 て る こ と も で き ま す 。 ◎ Docker Hub Docker Hub は Docker 社 が 提 供 す る ホ ス テ ィ ン グ 型 の Docker レ ジ ス ト リ で す 。 DockerHub に は CentOS や Ubuntu と い っ た べ ー ス と な る イ メ ー ジ か ら 、 MySQL や Redis と い っ た ミ ド ル ウ ェ ア 、 Node. js や Ruby と い っ た 実 行 環 境 が 用 意 さ れ た イ メ ー ジ ま で 、 さ ま ざ ま な イ メ ー ジ が 置 か れ て い ま す 。 Docker サ ー バ と docke 「 コ マ ン ド Docker は ク ラ イ ア ン ト / サ ー バ ア ー キ テ ク チ ャ に な っ て お り 、 Docker サ ー ノ <(docker と い う デ ー モ ン プ ロ セ ス ) が コ ン テ ナ の 起 動 や 停 止 を 行 い ま す 。 私 た ち が コ ン テ ナ や イ メ ー ジ の 操 作 を 行 う 際 は 、 Docker サ ー バ と 直 接 は や り と り せ ず 、 Docker ク ラ イ ア ン ト ( 主 に docker と い う コ マ ン ド ラ イ ン ツ ー ル ) を 通 し て 行 い ま す 。 触 っ て み よ う そ れ で は 実 際 に Docker を 触 っ て み ま し よ う 。 環 境 構 築 ー ー boot2docker の 導 入 本 特 集 で は み な さ ん の 手 元 の マ シ ン が OSX 環 境 で Docker レ ジ ス ト リ 注 12 Docker イ メ ー ジ の タ ウ ン ロ ー ド そ れ で は 、 「 Hello World 」 と 表 示 す る Sinatra コ ン テ ナ を 起 動 し て み ま し よ う 。 ま ず は 筆 者 が 作 成 し た イ メ ー ジ を DockerHub か ら ダ ウ ン ロ ー ド し ま す 。 $ docker pull spesnova/hello-world 注 10 run ー - ー ロ ocke 「 コ ン テ ナ の 起 動 ダ ウ ン ロ ー ド が 完 了 し た ら コ ン テ ナ を 起 動 し て み ま し よ う 。 docke 「 run コ マ ン ド に イ メ ー ジ 名 と 起 動 コ マ ン ド を 引 数 と し て 渡 せ ば 起 動 で き ま す 。 $ docker run -p 80 : 4567 spesnova/hello-world bundle exec 「 uby app. rb ( 実 際 は 1 行 ) -p 80 : 4567 部 分 は 「 コ ン テ ナ 内 の 4567 番 ポ ー ト を ホ ス ト マ シ ン の 80 番 ポ ー ト に 割 り 当 て て コ ン テ ナ 外 部 か ら ア ク セ ス 可 能 に す る 」 と い う オ プ シ ョ ン で す 。 別 の タ ー ミ ナ ル で boot2docke 「 ip コ マ ン ド を 実 行 し 、 表 示 さ れ る IP ア ド レ ス に プ ラ ウ ザ か ら ア ク セ ス し て み て く だ さ い 。 「 HelloWorld 」 と 表 示 さ れ て い る 注 1 1 https: 〃 github.com/boot2docker/osx-instaIIer/reIeases/ latest 注 12 x. x. x の 部 分 に は ハ ー ジ ョ ン が 入 り ま す 。 執 筆 時 点 2015 年 3 月 の 最 新 パ ー ジ ョ ン は 1.5 ℃ で し た 注 1 0 http:〃 hub.docker.com/ WEB + DB P 第 55 Vo ぬ 80 ・ 93

WEB+DB PRESS Vol.88


コ ー ド か ら ビ ル ド す る に せ よ 、 パ ッ ケ ー ジ を 自 前 で ビ ル ド す る に せ よ 、 libmysqlclient が 依 存 し て い る ソ フ ト ウ ェ ア を す べ て そ ろ え た 環 境 で ビ ル ド し な け れ ば な り ま せ ん 。 新 側 で 専 用 の モ ジ ュ ー ル 管 理 の し く こ の よ う に み を 持 っ て い た と し て も 、 実 際 に は C 言 語 で 書 か れ た ラ イ フ 。 ラ リ に 依 存 す る こ と は よ く あ り ま す 。 依 存 す る ソ フ ト ウ ェ ア が 多 く 依 存 地 獄 に 陥 る と 、 目 的 の 環 境 で ア プ リ ケ ー シ ョ ン を 実 行 す る こ と が 難 し く な り ま す 。 コ ン テ ナ 仮 想 化 技 術 と は 何 か Docker は 、 コ ン テ ナ 仮 想 化 技 術 を 利 用 し て 、 同 じ OS 上 に 複 数 の ア プ リ ケ ー シ ョ ン の 実 行 環 境 を 構 築 す る こ と を 容 易 に し て い ま す 。 Docker 自 体 が コ ン テ ナ 仮 想 イ ヒ 技 術 で あ る と い う よ り は 、 Docker は 手 段 と し て コ ン テ ナ 仮 想 化 技 術 を 用 い て い る と い う の が よ り 正 確 な 表 現 で し よ う 。 Docker は コ ン テ ナ 仮 想 化 技 術 の う ち 、 Linux コ ン テ ナ を 用 い て い ま す 。 Linux コ ン テ ナ は 、 Linux カ ー ネ ル の 名 前 空 間 の 機 能 に よ り 、 プ ロ セ ス を グ ル ー プ 化 し て 、 コ ン テ ナ と い う 隔 離 さ れ た 空 間 を 作 成 し ま す 。 名 前 空 間 と は 、 ホ ス ト 名 、 プ ロ セ ス ID 、 ユ ー ザ ID 、 ネ ッ ト ワ ー ク イ ン タ フ ェ ー ス 、 ル ー テ ィ ン グ テ ー プ ル な ど の カ ー ネ ル が 持 つ リ ソ ー ス を 隔 離 す る た め の Linux カ ー ネ ル の 機 能 で す 。 っ ま り コ ン テ ナ の 実 体 は プ ロ セ ス グ ル ー プ で あ り 、 ウ ェ ア を エ ミ ュ レ ー ト す る VM ( 防 Ⅷ / 財 “ 、 仮 想 マ シ ン ) 型 の 仮 想 化 技 術 と は し く み が 大 き く 異 な り ま す 。 コ ン テ ナ を 用 い る こ と に よ り 、 ア プ リ ケ ー シ ョ ン 単 位 で 隔 離 さ れ た 環 境 を 作 成 で き ま す 。 し た が っ て 、 複 数 の ア プ リ ケ ー シ ョ ン が 同 じ ソ フ ト ウ ェ ア に 依 存 す る こ と を 避 け や す く な り 、 依 存 地 獄 を 解 決 で き ま す 。 コ ン テ ナ 仮 想 化 技 術 に つ い て 詳 し く は 、 「 LXC で 学 ぶ コ ン テ ナ 入 門 」 注 6 を 参 照 し て く だ さ い ア プ リ ケ ー シ ョ ン の 実 行 環 境 を 構 築 し 、 配 布 す る Docker は ア プ リ ケ ー シ ョ ン の 実 行 環 境 を 丸 ご と イ メ ー ジ と し て 構 築 し 、 構 築 し た イ メ ー ジ を 配 布 で き ま す 。 構 築 し た イ メ ー ジ は 、 Docker の 動 作 し て い る 環 境 で あ れ ば ど こ で も 実 行 で き ま す 。 ポ イ ン ト は 、 実 行 環 境 を 丸 ご と イ メ ー ジ と し て 構 築 し て い る と こ ろ で す 。 Perl の 例 を 再 び 用 い る と 、 Carton が 管 理 す る CPAN モ ジ ュ ー ル 以 外 に 、 CPAN モ ジ ュ ー ル が 依 存 し て い る C 言 語 ラ イ フ 。 ラ リ な ど の 環 境 も ま と め て 1 つ の イ メ ー ジ に 閉 じ 込 め る と い う 発 想 で す 。 注 6 http.//gihyo.jp/admin/serial/()l/linux_containers Docker に よ る PerI の Web ア プ リ ケ ー シ ョ ン 開 発 を 利 用 す る の が 簡 単 で す 。 例 と し て 、 nginx の Docker イ docker イ メ ー ジ を 自 前 で 構 築 す る た め に は 、 Dockerfile し ま す 。 次 に 、 Docker イ メ ー ジ を 構 築 す る 方 法 に つ い て 説 明 Do ( ker イ メ ー ジ の 構 築 $ docker pull mysql mysql イ メ ー シ を タ ウ ン ロ ー ド コ マ ン ド に よ り 、 MySQL の イ メ ー ジ を 取 得 し ま す 。 は 、 docker pull コ マ ン ド を 使 い ま す 。 た と え ば 次 の DockerHub か ら 構 築 済 み の イ メ ー ジ を 取 得 す る に し ま す 。 ま ず 、 Docker イ メ ー ジ を 取 得 す る 方 法 に つ い て 説 明 DO ( ker イ メ ー シ の 取 得 基 本 的 な 使 い 方 Docker の 順 に 見 て い き ま す 。 0D0 ( ker コ ン テ ナ の 停 止 ・ 削 除 ② Docker コ ン テ ナ の 起 動 0 Docker イ メ ー ジ の 取 得 ま た は 構 築 Docker の 使 い 方 の 流 れ の 基 本 は 以 下 に な り ま す 。 Docker の 使 い 方 の 流 れ 用 す る 機 能 を 重 点 的 に 解 説 し ま す 。 能 は さ ほ ど 多 く あ り ま せ ん 。 こ で は 、 筆 者 が よ く 使 Docker に は さ ま ざ ま な 機 能 が あ り ま す が 、 常 用 す る 機 本 節 で は 、 Docker の 具 体 的 な 使 い 方 を 紹 介 し ま す 。 ◎ 配 布 す る た め に は Distribution 注 8 を 用 い ま す 。 ス テ ム で す 。 プ ラ イ ベ ー ト な 環 境 で Docker イ メ ー ジ を Web 上 に 公 開 さ れ た SaaS(Software 0 S げ c の 型 の シ の Docker イ メ ー ジ を 再 利 用 で き ま す 。 DockerHub は Hub に Docker イ メ ー ジ を 登 録 し て お く と 、 誰 も が そ ト フ ォ ー ム と し て 、 DockerHub 注 7 が あ り ま す 。 Docker さ ら に 、 構 築 し た イ メ ー ジ を 配 布 す る た め の プ ラ ッ プ リ ケ ー シ ョ ン を 実 行 で き る よ う に し て い ま す 。 行 す る と い う 2 点 の 工 夫 に よ り 、 環 境 に 依 存 せ ず に ア と い う こ と と 、 先 述 し た イ メ ー ジ を コ ン テ ナ と し て 実 Docker は 、 実 行 環 境 を 丸 ご と イ メ ー ジ と し て 構 築 す る 注 7 注 8 https:〃hub.docker.com/ https://github.com/docker/distribution Ⅳ B + DB P ー 55 MOL88 ・ 13 ア

WEB+DB PRESS Vol.86


ー 実 戦 投 入 ・ Ra ⅱ s イ メ ー ジ の ソ ー ス コ ー ド 利 用 す る イ メ ー ジ と ソ ー ス コ ー ド https:〃github.com/spesnova/docker-example-rails ・ nginx イ メ ー ジ C 叩 is ano 自 身 も コ ン テ ナ と し て 動 か し ま す 。 利 https: 〃 quay. io/repository/spesnova/docker- 用 す る イ メ ー ジ と ソ ー ス コ ー ド は 以 下 で す 。 example-nginx ・ Capistrano イ メ ー ジ ・ nginx イ メ ー ジ の ソ ー ス コ ー ド https:〃 quay. io/repository/spesnova/docker- https://github.com/spesnova/docker-example- example-capistrano nglnx ・ Capist 「 ano イ メ ー ジ の ソ ー ス コ ー ド https://github.com/spesnova/docker-example- capistrano 〔 ヨ pist 「 日 no に よ る オ ー ケ ス ト レ ー ヨ ョ ン そ れ で は 、 C 叩 is 仕 an03 に よ る Docker コ ン テ ナ の オ ー ケ ス ト レ ー シ ョ ン の 実 践 例 を 紹 介 し ま す 。 C 叩 istrano は バ ー ジ ョ ン 3.3.5 を 利 用 し ま す 。 な お 、 C 叩 istrano の 基 本 に つ い て は 紙 幅 の 都 合 で 割 愛 し ま す 。 「 入 門 C 叩 istrano 3 ~ す べ て の 手 作 業 を 生 ま れ る 前 に 消 し 去 り た い 」 と い う 記 事 に 詳 し い の で 参 考 に し て く だ さ い CIoud-Config を 使 っ た 本 番 環 境 の 構 築 で は 、 本 番 環 境 を 構 築 し て い き ま し よ う 。 先 述 の と お り 、 今 回 は サ ン プ ル で す の で vagrant を 使 っ て 手 元 の マ シ ン 上 に 本 番 環 境 を 構 築 し ま す 。 注 20 構 築 に は Cloud-Config を 用 い ま す 。 CIoud- Con ⅱ g は EC2 な ど の ク ラ ウ ド イ ン ス タ ン ス 起 動 時 の プ ロ ビ ジ ョ ニ ン グ 処 理 を 定 義 で き る ツ ー ル で 、 Capistrano を 使 っ た 構 成 CoreOS マ シ ン 構 築 時 に も 利 用 で き ま す 。 紙 幅 の 都 C 叩 istrano を 利 用 し 、 図 3 の よ う に core-01 と い う 合 で 詳 細 は 割 愛 し ま す の で 、 CoreOS の 公 式 ド キ ュ メ ン ト 注 21 を 参 照 し て く だ さ い マ シ ン 上 の Capistrano コ ン テ ナ か ら core-02 と core- 03 上 の nginx コ ン テ ナ と RaiIs コ ン テ ナ を 操 作 し ま OSX 上 に CoreOS マ シ ン を 3 台 立 て ま す 。 す 。 $ git clone https://github.com/spesnova/docker-example- capistrano. git ( 実 際 は 1 行 ) ま た デ フ ォ ル ト で 入 っ て い る タ ス ク 注 19 は 使 わ ず 、 $ cd docker-example-capistrano/coreos Docker コ ン テ ナ を 管 理 す る た め の 独 自 タ ス ク を 定 義 $ cp . env. sample . env $ vagrant 叩 し ま す 。 Bringing machine ・ ( 0 「 e - 0 リ up with 'virtualboxi provide 「 . ( 省 略 ) = = > ( ore - 03 : Running provisioner: shell. ( 0 「 e - 03 : Running: inline script 注 18 注 1 8 http://labs.gree.jp/bIog/201 3 / 1 2 / 10084/ 注 19 Capistrano に お け る 一 連 の 処 理 の 単 位 の こ と で す 。 マ 図 3 ( apist 「 ano に よ る オ ー ケ ス ト レ ー シ ョ ン Rails Capistrano (rails-blue) コ ン テ ナ コ ン テ ナ nglnx コ ン テ ナ . Capistrano の イ ン ス ト ー ル で は C 叩 is ano の イ ン ス ト ー ル を 行 い ま し よ う 。 ま ず core -01 に ロ グ イ ン し ま す 。 $ cd docker-example-capistrano/coreos $ vagrant ssh co 「 e - 01 Core0S stable ( 598.0.0 ) Update Strategy: NO Reb00ts Rails (rails-green) コ ン テ ナ CoreOS マ シ ン ( ( ore -01 ) CoreOS マ シ ン ( ( ore -02 ) 注 20 https:〃github.com/coreos/coreos-cloudinit 注 21 https://co 「eos.com/docs/cluster-management/setup/ cloudinit-cloud-config/ CO 「 eOS マ シ ン ( ( 0 「 e -03 ) 108 ・ WEB + DB P 盛 第 55 MOL80

WEB+DB PRESS Vol.81


特 集 30 実 践 lmmutable lnfrastructure 使 い 捨 て サ ー バ に よ る 運 用 の 変 革 の docker-registry を 動 か す た め の Docker イ メ ー は 公 式 イ メ ー ジ リ ポ ジ ト リ に す で に 用 意 さ れ て い ま す の で 、 こ ち ら を 利 用 し ま す 。 ま ず は Docker イ メ ー ジ を 手 元 に 持 っ て き ま す 。 $ docker pull registry PuIIing repository 「 egistry e8e5377f8307 : Pulling dependent layers そ し て Docker コ ン テ ナ と し て 起 動 し ま す 。 $ docker run -p 5 囲 0 : 50 囲 \ -v /tmp/registry:/tmp/registry registry シ ま ず リ ポ ジ ト リ に push し た い Docker イ メ ー ジ に ジ を リ ポ ジ ト リ に 登 録 し ま し よ う 。 で は 、 サ ン プ ル プ ロ グ ラ ム が 入 っ た Docker イ メ ー ◎ プ ラ イ ベ ー ト リ ボ ジ ト リ へ の 登 録 ス テ ム に 保 存 で き る よ う に な り ま す 注 4 registry と 指 定 す る こ と で 、 ホ ス ト 側 の フ ァ イ ル シ ま す 。 そ れ を 避 け る た め に -v /tmp/registry:/tmp/ ナ の 再 起 動 を 行 う と 保 存 し た Docker イ メ ー ジ が 消 え は Docker コ ン テ ナ に 保 存 す る た め 、 Docker コ ン テ docker-registry は Docker イ メ ー ジ を デ フ ォ ル ト で $ docke 「 push IocaIhost:5000/sampIe-app そ し て push し ま す 。 IocaIhost:5000/sample-app:v1 $ docker tag sample-app \ 次 の よ う に タ グ 付 け し ま す 。 い く し く み で す 。 リ ポ ジ ト リ へ の push は Docker イ 変 更 内 容 を 変 更 ご と に 層 ( レ イ ヤ ) の よ う に 記 録 し て れ て い ま す 注 5 。 aufs レ イ ヤ と は 、 フ ァ イ ル シ ス テ ム の Docker イ メ ー ジ は aufs レ イ ヤ と い う し く み が 使 わ locaIhost:5000/v1/repositories/sample-app/tags/Iatest} Pushing tag f0 「 rev [ e84f5828ba5a ] on {http: 〃 e84f5828ba5a : lmage successfully pushed . ( 中 略 ) 511136ea3C5a : lmage successfully pushed Pushing repository Iocalhost:5000/sample-app ( 1 tags) Sending image list sample-app] (len: 1 ) The push refers t0 a 「 epository は 0 ( alhost : 5 囲 0 / デ フ ォ ル ト で aufs が 使 わ れ ま す 。 ぶ こ と が で き ま す 。 本 稿 で 使 っ て い る Ubuntu 12.04 で は vfs の 3 つ の ド ラ イ バ か ら Linux カ ー ネ ル の 機 能 に 応 じ て 選 Docker 0.7 よ り 、 Docker イ メ ー ジ は aufs 、 devicemapper 、 き る の で す が 、 本 稿 で は 割 愛 し ま す 。 docker-registry は Amazon S3 を 保 存 場 所 に す る こ と も で メ ー ジ の aufs レ イ ヤ ご と に 行 わ れ ま す 。 す べ て の レ 注 5 注 4 96 ・ Ⅳ 第 B + DB P 第 55 VoI.8 ー イ ヤ で lmage successfully pushed と 出 れ ば 、 ジ ト リ へ の 登 録 に 成 功 し て い ま す 。 Docker Remote API に よ る 操 作 リ ポ Ⅱ を 実 現 す る に は ア プ リ ケ ー シ ョ ン サ ー バ を リ モ ー ト か ら 操 作 す る 必 要 が あ り ま す 。 Docker に は RemoteAPI が 用 意 さ れ て お り 、 こ れ が 利 用 で き ま す 。 ◎ Remote API の 有 効 化 Remote API を 使 え る よ う に す る た め に 、 /etc/ default / docke 「 に 次 の 行 を 追 記 し ま す 。 後 者 の -H unix:///var/run/docker. sock は な く で も よ い の で す が 、 docker ps な ど の 各 種 コ マ ン ド は デ フ ォ ル ト で Un ⅸ ド メ イ ン ソ ケ ッ ト 経 由 で 通 信 す る の で 、 付 け て お い た ほ う が 手 間 が 少 な く な り ま す 。 そ し て docker デ ー モ ン を 再 起 動 し ま す 。 $ sudO service docker restart ◎ ロ ocker イ メ ー ジ の 起 動 Docker RemoteAPI を 使 っ て 先 ほ ど の sample-app イ メ ー ジ で Docker コ ン テ ナ を 起 動 す る に は 、 次 の よ う に API を 2 回 た た く 必 要 が あ り ま す 。 $ curl -X POST -H "Content-Type: application/json" \ -d '{"lmagei:"sample-app"}' \ http://IocaIhost:4243/containers/create {"ld" : " 49b9 ( 中 略 ) 4d", "Warnings" :null} $ curl -X POST -H "Content-Type: application/json" i{"PortBindings" : { ” 4567 / tcp “ : [{"HostPort" : " 4567 ” } ] } ド \ http://IocaIhost:4243/containers/49b9 ( 中 略 ) 4d/start Remote API を 直 接 た た く の は 煩 雑 で す の で 、 Remote API の Ruby ク ラ イ ア ン ト で あ る docker-api を 利 用 す る と 、 次 の よ う に シ ン プ ル に 書 け ま す 。 「 equire idocker DOCKER OPTS="-H 0.0.0.0 : 4243 -H unix:///va 「 /run/docke 「 . sock" Docker. url = 物 ttp : / ハ 0 ( alhost : 424 王 containe 「 = Docker: :Container. create( llmagei = > 'sample-appl) container. start('PortBindingsI = > 0 4567 / tc = > [ { IHostPortI = > 図 56 刀 } ] } ) 今 後 は こ の docker - 叩 i を 利 用 し て 解 説 し ま す 。 イ メ ー ジ リ ポ ジ ト リ に 登 録 さ れ た Docker イ メ ー ジ を 利 用 す る に は 、 次 の よ う に イ メ ー ジ リ ポ ジ ト リ に 登 録 す る 際 に 設 定 し た タ グ を 指 定 し ま す 。

WEB+DB PRESS Vol.81


コ ン テ ナ 型 仮 想 化 と ク ラ ウ ド に よ る 実 践 Docker 十 HAProxy 、 Amazon EC2 十 ELB 第 3 章 container = Docker: :Container. create( ・ lmagel = > Ilocalhost:5000/sampIe-app:v1') こ ま で で 、 ア プ リ ケ ー シ ョ ン の Docker イ メ ー ジ の 作 成 、 プ ラ イ ベ ー ト リ ポ ジ ト リ へ の 登 録 、 ア プ リ ケ ー シ ョ ン サ ー バ 上 で の Docker コ ン テ ナ の 起 動 ま で を 実 現 で き ま し た 。 今 回 の サ ン プ ル Web ア プ リ ケ ー シ ョ ン で は Ruby の Sinatra を 使 っ て い ま す が 、 そ れ 以 外 の web ア プ リ ケ ー シ ョ ン で も 、 Dockerfile を 修 正 す る こ と で 対 応 で き ま す 。 DOCker 十 HAProxy-—- に よ る II の 実 現 環 境 の 構 築 こ れ ま で に 解 説 し て き た Docker に 加 え て 、 ロ ー ド バ ラ ン サ の HAPro や Git リ ポ ジ ト リ を 加 え 、 Ⅱ を 実 現 す る 環 境 を 構 築 し ま し よ う ( 図 1 ) 今 回 の 構 成 で は 、 中 央 サ ー バ と ア プ リ ケ ー シ ョ ン サ ー バ の 2 種 類 が あ り ま す 。 中 央 サ ー バ で は 、 ロ ー ド バ ラ ン サ の HAPro 、 Docker イ メ ー ジ リ ポ ジ ト リ 、 Git リ ポ ジ ト リ を 動 か し ま す 。 管 理 者 は 中 央 サ ー バ に ロ グ イ ン し て 、 Ⅱ で 必 要 と な る 処 理 を 実 行 し ま す 。 Git リ ポ ジ ト リ の 構 築 方 法 は 紙 幅 の 都 合 で 割 愛 し ま す 。 HAPro は 次 の コ マ ン ド で 導 入 で き ま す 。 $ sud0 apt-get install haproxy 各 ア プ リ ケ ー シ ョ ン サ ー バ で は 、 DockerRemote API を 有 効 に し た Docker を 起 動 し ま す 。 ア プ リ ケ ー シ ョ ン サ ー バ は 、 実 際 に ア プ リ ケ ー シ ョ ン を 動 か す 環 境 で す 。 BIue-green DepIoyment の 実 践 ゴ ー ル デ ン イ メ ー ジ と し て 作 成 し た Docker イ メ ー ジ を 使 っ て 、 Blue-green Deployment を 実 践 し ま す 。 ◎ Docker イ メ ー ジ の 起 動 今 回 の 環 境 で は 、 Docker Remote API を 経 由 し て ア プ リ ケ ー シ ョ ン を 実 行 し ま す の で 、 各 サ ー バ に SSH す る 必 要 は あ り ま せ ん 。 次 の ス ク リ プ ト で ア プ リ ケ ー シ ョ ン サ ー バ 上 で Docker コ ン テ ナ の 起 動 と HAPro の コ ン フ ィ グ 生 成 を 行 い ま す 。 start ft•l. 「 b # ! /usr/bin/env ruby 「 equire ldockert ユ 0 ( alhost 勹 app = い localhos む count END mode http bind 0 . 0 . 0 . 0 : 80 listen www srvtimeout clitimeout 50000 contimeout defaults puts く <END image = ARGV. shift 5 囲 囲 5 囲 0 IocaIhost:5000/sample-app:v1 > haproxy vl. cfg $ ruby start *. rb \ ス ク リ プ ト を 実 行 し て み ま し よ う 。 end end puts ・ port server srv#{count + =1} #{s}:#{port}" = v[0]["HostPort"] . each value d0 ー ⅵ container. json["NetworkSettings"] ["Ports"] 'PortBindings' = > C4567 / tc = > [ { } ] } ) container. sta 「 t( llmagel = > image) container = Docker: :Container. C 「 eate( Docker. u「1 ー "http://#{s}:4243" app. each d0 ー 引 マ 図 1 Do ( ke 「 に よ る ll の 基 本 構 成 き ま す 。 る と 、 Docker コ ン テ ナ が 起 動 し て い る こ と を 確 認 で 各 ア プ リ ケ ー シ ョ ン サ ー バ で docke 「 ps を 実 行 す 中 央 サ ー バ Docker イ メ ー シ リ ポ ジ ト リ HAProxy コ ン テ ナ コ ン テ ナ Docker Docker ア プ リ ケ ー シ ョ ン Git リ ポ ジ ト リ コ ン テ ナ コ ン テ ナ Docker Docker ア プ リ ケ ー シ ョ ン Ⅳ ー + DB P 盛 第 55 VoI.8 ー ・ 97

WEB+DB PRESS Vol.86


第 1 章 000k 「 入 門 成 り 立 ち か ら 学 ぶ 基 本 と 全 体 像 成 り 立 ち か ら 学 ぶ ロ ock 特 集 の は し め に 本 誌 の 読 者 で あ れ ば 、 Dockeél と い う 技 術 を 一 度 さ て 、 現 在 人 気 を 得 て い る Docker と は ど う い っ た は 耳 に し た こ と が あ る の で は な い で し よ う か 0Docker 技 術 な の で し よ う か 。 本 節 で は そ の 成 り 立 ち か ら は コ ン テ ナ 型 仮 想 化 技 術 の 一 つ で 、 マ シ ン イ メ ー ジ Docker と は 何 か を 学 ん で い き ま し よ う 。 の 作 成 、 配 布 、 取 得 、 起 動 が 手 軽 か つ 高 速 に 行 え る Docker は 、 米 Docker 社 の エ ン ジ ニ ア が 中 心 と な こ と か ら 、 開 発 者 の 間 で 急 速 に 普 及 し て い ま す 。 っ て 開 発 し て い る OSS(OPen So 化 S の の サ ー バ 仮 想 イ ヒ 技 術 注 2 で す 。 2013 年 3 月 の con 注 3 で 公 開 Docker を 使 っ て 本 格 的 に サ ー ビ ス を 運 用 し よ う と 思 え ば 、 当 然 な が ら 複 数 の ホ ス ト 上 に コ ン テ ナ を 展 さ れ た あ と 急 速 に 普 及 し て い き ま し た 。 開 す る 必 要 が 出 て き ま す 。 し か し 、 複 数 ホ ス ト 環 境 今 で こ そ Docker 社 は Docker を ビ ジ ネ ス の 中 心 に に な る と 、 1 台 の サ ー バ 上 で コ ン テ ナ を 動 か し て い お い て い ま す が 、 も と も と は do ℃ loud と い う PaaS た と き に は 遭 遇 し な か っ た 問 題 に ぶ つ か り ま す 。 デ ( 刊 。 4 S げ 房 c の 型 の ク ラ ウ ド サ ー ビ ス を 提 供 プ ロ イ 、 サ ー バ を ま た い だ コ ン テ ナ の 連 携 、 モ ニ タ す る 会 社 で し た 。 dotCloud や Heroku と い っ た PaaS リ ン グ な ど で す 。 現 時 点 で は 複 数 ホ ス ト 環 境 で 多 数 は 、 一 般 的 に ア プ リ ケ ー シ ョ ン の 実 行 環 境 の 提 供 だ の コ ン テ ナ を 運 用 す る 技 術 や ノ ウ ハ ウ は ま だ 成 熟 し け で な く 、 デ ブ ロ イ や フ ェ イ ル オ ー バ ー 、 モ ニ タ リ ン グ と い っ た シ ス テ ム 運 用 に 必 要 な し く み の 大 半 を て い な い の が 実 情 で す 。 筆 者 は 、 WantedIy と い う ビ ジ ネ ス SNS を 運 営 す る 提 供 し て く れ ま す 。 当 然 な が ら 自 分 の ア プ リ ケ ー シ 組 織 の イ ン フ ラ 担 当 と し て 、 2014 年 夏 に 本 番 環 境 を ョ ン の シ ス テ ム 運 用 を 丸 ご と や っ て も ら い た い と い Heroku か ら Docker を 使 っ た 構 成 へ と 移 行 し て か ら 現 う 人 が do ℃ loud の サ ー ビ ス を 訪 れ ま す 。 在 に い た る ま で 、 日 々 試 行 錯 誤 を 繰 り 返 し な が ら Docker し か し あ る と き 、 「 dotCIoud の サ ー ビ ス を 利 用 す を 使 っ た イ ン フ ラ の 開 発 と 運 用 を 行 っ て い ま す 。 る つ も り は な い の だ け ど 、 し く み は す ば ら し い 本 特 集 で は 、 筆 者 が 実 運 用 か ら 学 ん で き た こ と を う や っ て 実 現 し て い る の か 教 え て ほ し い 」 と 言 っ て き も と に 、 上 述 し た 問 題 に 対 す る 筆 者 な り の 知 見 を 紹 た 開 発 者 が い た そ う で す 。 介 し て い き ま す 。 本 章 で は Docker の 基 本 を 解 説 し 、 そ の と き dotCIoud 内 部 で 使 わ れ て い た の が 、 Linux 第 2 章 で は Docker を 使 う う え で の 勘 所 、 第 3 章 で は コ ン テ ナ と 呼 ば れ る OSS の コ ン テ ナ 型 の サ ー バ 仮 想 化 技 術 注 4 で し た 。 Linux コ ン テ ナ は OSS で し た が 誰 本 番 運 用 を 見 据 え た イ メ ー ジ の 作 成 、 第 4 章 で は 本 番 環 境 の 構 築 と デ ブ ロ イ の 自 動 化 、 第 5 章 で は モ ニ タ リ ン グ や ロ グ 管 理 な ど の 運 用 ノ ウ ハ ウ を そ れ ぞ れ 注 2 サ ー パ の 仮 想 化 と は 、 あ る マ シ ン 上 で 仮 想 的 に 別 の マ シ ン を 動 か す 技 術 の こ と を 言 い ま す 。 解 説 し て い き ま す 。 注 3 Python に 関 す る 国 際 カ ン フ ァ レ ン ス で す 。 注 4 今 の 時 点 で は サ ー バ 仮 想 化 技 術 の 一 種 だ と 理 解 し て い て く 注 1 http:〃www.docker.com/ だ さ い 。 90 ・ WEB + DB 55 Vo 80

WEB+DB PRESS Vol.79


0 た し か に 、 先 に 立 ち 上 げ た コ ン テ ナ が 終 了 せ ず に 残 っ て い る こ と が わ か り ま す 。 を 指 定 し ま す 。 こ の 名 前 は Docker が 、 利 便 性 の た め 自 ン テ ナ の ID か 、 docker ps で も 出 力 さ れ る コ ン テ ナ 名 の 出 力 を ロ グ と し て 見 る こ と が で き ま す 。 引 数 に は コ docker logs コ マ ン ド を 使 う と 、 起 動 中 の コ ン テ ナ ◎ dockerlogs He110 Hello [vm]$ docke 「 logs grave thompson 動 的 に 割 り 振 っ て い る も の で す 注 1 2 出 力 さ れ ま す 。 こ の 情 報 に コ ン テ ナ の ネ ッ ト ワ ー ク の No ね 月 ) で コ ン テ ナ に ま つ わ る い ろ い ろ な 内 部 情 報 が docke 「 inspect を 使 い ま す 。 JSON(JavaScriptObject コ ン テ ナ の ス テ ー タ ス を よ り 詳 細 に 見 た い 場 合 は ◎ docker inspect い ま す 。 docke 「 logs コ マ ン ド で 見 る た び HeIIo の 出 力 は 増 え て perl ワ ン ラ イ ナ ー は ず っ と 動 き 続 け て い ま す か ら 、 Hello Hello [ Ⅷ ] $ docker attach grave thompson 端 末 制 御 を 取 得 で き ま す 。 docke 「 attach を 使 う と 、 コ ン テ ナ に ア タ ッ チ し て ◎ docker attach [ Ⅷ ] $ docker inspect grave thompson IP ア ド レ ス な ど も 含 ま れ て い ま す 。 1 16 ・ Ⅳ 第 B + 08 P 第 55 Vo ア 0 ま す 。 注 1 2 コ ン テ ナ 起 動 時 に - n オ プ シ ョ ン で 明 示 的 に 名 前 を 付 け る こ と も で き て い ま す 。 こ れ で 、 ナ の ID を 取 得 す る コ マ ン ド を dl と し て ェ イ リ ア ス し docker ps の オ プ シ ョ ン で 、 直 前 に 起 動 し た コ ン テ [vm]$ alias dl=ldocke 「 ps -1 -q き ま し よ う 。 入 力 す る の は 面 倒 で す ね 。 次 の ェ イ リ ア ス を 作 っ て お と こ ろ で 、 コ マ ン ド 入 力 の た び に コ ン テ ナ 名 を 毎 回 ◎ Tips : 直 前 の 旧 を 出 力 He Ⅱ 0 が 1 秒 ご と に 出 力 さ れ る 様 子 が わ か る と 思 い ま す 。 Emerging Web TechnoIogy 研 究 室 docke 「 ru n コ マ ン ド で は こ の イ メ ー ジ か ら コ ン テ ナ を 作 り 出 し て い る わ け で す 。 イ メ ー ジ は 、 い わ ば コ ン [vm]$ docker inspect dl 、 と い ち い ち ID や 名 前 を 調 べ る 手 間 を 省 け ま す 。 ・ コ ン テ ナ は た た の プ ロ セ ス Docker コ ン テ ナ が 起 動 し て い る 状 態 で 、 母 艦 側 で ps ax し て み ま し よ う 。 [ Ⅷ ] $ ps ax ー grep -v grep ー grep docke 「 962 ? 2041 ? 0 : 27 /usr/bin/docker -d 0 : 囲 lxc-sta 「 t ( 略 ) { print "Hello\n" ・ Ss sleep 1 } ⅸ c - start と い う プ ロ セ ス 名 で 先 の コ ン テ ナ ら し き も の が 動 い て い る の が 見 え ま す 。 繰 り 返 し 説 明 し て い る よ う に 、 Docker を 通 じ て 作 り 出 さ れ る 仮 想 環 境 す な わ ち Linux コ ン テ ナ は 、 カ ー ネ ル が 作 り 出 す ュ ー ザ 空 間 で す 。 要 す る に 母 艦 に と っ て は た だ の プ ロ セ ス な ん で す ね 。 ◎ docker kill 起 動 中 の コ ン テ ナ を 終 了 す る に は docke 「 kill で シ [vm]$ docker ps -a ナ も 含 め て 一 覧 で き ま す 。 docker ps に - a を 付 け る と 、 す で に 終 了 し た コ ン テ [vm]$ docker kill 、 dl 、 グ ナ ル を 飛 ば し ま し よ う 。 DO ( ke 「 イ メ ー ジ 管 理 し て い る イ メ ー ジ ー 覧 は docke 「 images で 見 る こ ジ が コ ン テ ナ と し て 実 体 化 さ れ ま す 。 そ し て Docker が す で に 見 た と お り docke 「 run コ マ ン ド に よ り イ メ ー ・ イ メ ー ジ = コ ン テ ナ の テ ン プ レ ー ト [vm]$ docker images と が で き ま す 。 $ docker images REPOSITORY CREATED ubuntu 9 months ago ubuntu 9 months ago TAG VIRTUAL SIZE 128 MB latest 128 MB 12 . 04 IMAGE ID 8dbd9e392a96 8dbd9e392a96

WEB+DB PRESS Vol.86


00 に I« 「 実 戦 投 入 特 集 3 設 計 の 原 則 、 本 番 環 境 の 構 築 、 運 用 ノ ウ ハ ウ 内 田 誠 悟 UCHIDA Seigo WantedIy,Inc. spesnova spesnova 本 特 集 で は 、 Docker を 実 運 用 で 使 用 す る 方 法 を 紹 介 し ま す 。 Docker は コ ン テ ナ 型 仮 想 化 技 術 の 一 つ で 、 ま る で 自 動 車 を コ ン テ ナ に 入 れ て コ ン テ ナ 船 で 輸 送 す る よ う に 手 元 の マ シ ン で 動 い て い る ア プ リ ケ ー シ ョ ン を そ の ま ま の 形 で 別 の マ シ ン ま で 運 ぶ こ と を 可 能 に し て く れ ま す 。 こ れ に よ り 、 「 開 発 環 境 で 動 い て も 本 番 環 境 に デ ブ ロ イ し て み た ら 動 か な か っ た 」 と い っ た デ ブ ロ イ の 課 題 を 解 決 し ま す 。 た だ 、 Docker を 実 運 用 で 使 用 す る た め の ま と ま っ た 情 報 は ま だ あ ま り あ り ま せ ん 。 そ こ で 本 特 集 で は 、 Docker を 実 戦 投 入 す る た め の ノ ウ ハ ウ を 徹 底 解 説 し て い き ま す 。 ロ 0 こ k 日 「 入 門 成 り 立 ち か ら 学 ぶ 基 本 と 全 体 像 ー ー -90 ロ ock 日 「 を 活 か す た め の 原 則 実 戦 投 入 に 向 け て 押 さ え て お き た い 勘 所 ビ ル ト 環 境 の 構 築 と ロ 0 に I< イ メ ー の ビ ル ド 本 番 運 用 を 見 据 え た イ メ ー ジ の 作 り 方 一 一 99 本 番 環 境 の 構 築 と ロ 0 に I< コ ン テ ナ の デ ブ ロ イ Capistrano 、 Swarm に よ る オ ー ケ ス ト レ ー シ ョ ン の 実 践 ー ー 106 ロ ロ こ ke 「 運 用 ノ ウ ハ ウ C に モ ニ タ リ ン グ 、 ロ グ 管 理 、 メ ン テ ナ ン ス ー - ー 1 14 本 特 集 の サ ン プ ル コ ー ド は 、 本 誌 サ ポ ー ト サ イ ト か ら 入 手 で き ま す 。 http://wdpress.gihYO.jp/ GitHub Twitter 第 1 章 第 2 章 第 3 章 第 4 章 第 5 章 95

Docker入門


( hap e 「 2-02 lJbuntu Serve 「 ] 4.04 に DOCke 「 を イ ン ス ト ー ル す る バ ー ジ ョ ン ] . O 系 の 古 い Docke 「 が イ ン ス ト ー ル さ れ る こ と が 分 か り ま す 。 Ubuntu 14.04 の バ ッ ケ ー ジ を 使 っ て 導 入 し た Docke 「 で の 実 行 結 果 2-2-3 ー sudo docker -v Docker ve 「 5 土 on 1 』 . 1 , build 990621a $ sudO docke r run he110- WO 「 1- d Unab1e tO find image ・ hel -10- 'WO 「 ld ・ 10Ca11Y Pu11ing repository he110- wo 「 ld 91C959 引 e552 : Pu11ing image (latest) from he110- wo ユ 山 endpoint: https:// 「 egis 91C959 引 e552 : Down10ad complete a8219747be10 : DownIoad complete He110 from Docker. This message shows that your installation appears tO be working ( 0 「 「 ectly. TO generate this message, DOCke 「 tOOk the f0110W 土 ng steps: 1 . The Docker client contacted the Docker daemon . 2 . The Docker daemon pulled the ・ を he110- WO 「 ld " image from the Docker Hub. (Assuming it was not already 10Ca11Y available• ) The Docke 「 daemon ( reated a new container from that image which runs the executable that produces the OUtPUt you are currently reading. The Docker daemon streamed that output tO the Docker which sent it 4 . tO your terminal . TO t ry something more ambitious, you can run an l-]buntu containe 「 with: docker run - it ubuntu bash FO 「 more examples and ideas, visit: http://docs. d00k2「 . com/userauide/ Pa 「 t 2 「 command not found 」 と い う エ ラ ー メ ッ セ ー ジ が 表 示 さ れ る 場 合 に は 、 docke 「 . iO)kO ッ ケ ー ジ が 正 し く イ ン ス ト ー ル さ れ て い な い こ と が 考 え ら れ ま す 。 再 度 バ ッ ケ ー ジ の イ ン ス ト ー ル 作 業 を 実 施 し て く だ さ い 。 ま た 、 「 se 「 ve 「 misbehaving 」 と い う エ ラ ー メ ッ セ ー ジ が 表 示 さ れ る 場 合 に は 、 イ ン タ ー ネ ッ ト に 接 続 さ れ て い な い か 、 Docke 「 Hub の サ ー バ ー が 停 止 し て い る 可 能 性 が あ り ま す 。 イ ン タ ー ネ ッ ト へ の 接 続 を 再 確 認 し て 、 接 続 さ れ て い な い よ う で あ れ ば 接 続 し て か ら コ マ ン ド を 再 実 行 し ま し よ う 。 正 し く 接 続 さ れ て い て こ の エ ラ ー メ ッ セ ー ジ が 出 る 場 合 に は 、 し ば ら く 時 間 を 置 い て か ら 再 度 コ マ ン ド を 実 行 し て み て く だ さ い 。 「 Cannot connect tO the DOCke 「 daemon 」 と い う エ ラ ー メ ッ セ ー ジ が 表 示 さ れ る 場 合 は 、 Docke 「 サ ー バ ー が 起 動 し て い な い こ と が 考 え ら れ ま す 。 次 の よ う に Docke 「 サ ー バ ー を 起 動 し 、 さ ら に シ ス テ ム 起 動 時 に 自 動 起 動 す る よ う 設 定 し ま し よ う 。 $ sudO service docker . iO S セ a て セ $ sudo update-rc. d docker. i0 defaults = Enter 39

WEB+DB PRESS Vol.86


[email protected]ー 実 戦 投 入 は ず で す 。 な お 、 区 硎 + ℃ で Sina 仕 a プ ロ セ ス を 止 め ら れ ま す 。 build ー ー ロ ocker イ メ ー ジ の ビ ル ド 次 は 「 HelloDocker 」 と 表 示 さ れ る よ う ソ ー ス コ ー ド を 編 集 し て 、 イ メ ー ジ を ビ ル ド し て み ま し よ う 。 さ き ほ ど 動 か し た ア プ リ ケ ー シ ョ ン の ソ ー ス コ ー ド を GitHub か ら clone し て く だ さ い $ git clone https://github.com/spesnova/docker-hello- W0「1d. git ( 実 際 は 1 行 ) $ cd docker-hello-world app. rb を 編 集 し ま す 。 $ docker build -t=hello-world 先 ほ ど と 同 様 に コ ン テ ナ を 動 か し て み ま し よ う 。 $ docker run -p 80 : 4567 hello-world bundle exec ruby app. rb ( 実 際 は 1 行 ) 再 度 別 の タ ー ミ ナ ル で boot2docker ip コ マ ン ド を 実 行 し 、 表 示 さ れ る IP ア ド レ ス に フ 。 ラ ウ ザ か ら に ア ク セ ス し て み て く だ さ い 。 「 He Ⅱ oDocker 」 と 表 示 さ れ て い ま す ね ! push Docker イ メ ー ジ の ア ッ プ ロ ー ド Docker イ メ ー ジ が ビ ル ド で き た の で 、 今 度 は Docker Hub ヘ イ メ ー ジ を ア ッ プ ロ ー ド し ま し よ う 。 ま ず DockerHub で ア カ ウ ン ト を 作 成 し て く だ さ 注 13 次 に docker 朝 gin コ マ ン ド で DockerHub に ロ グ イ ン し ま す 。 myaccount や パ ス ワ ー ド 部 分 は 適 宜 自 分 の も の に 置 き 換 え て く だ さ い $ docker login ビ ル ド に は docke r build コ マ ン ド を 使 い ま す 。 Username : myaccount Password : docker build コ マ ン ド に は 、 Dockerfile が 存 在 す る Email: [email protected] Login Succeeded パ ス を 引 数 と し て 渡 し ま す 。 ま た - t オ プ シ ョ ン を 使 イ メ ー ジ の ア ッ プ ロ ー ド に は docke 「 push コ マ ン っ て ビ ル ド す る Docker イ メ ー ジ に 名 前 も 付 け ま す 。 工 ラ ー が 出 る 場 合 は $ ( b00t2docke 「 shellinit) を 実 ド を 使 い ま す 。 行 し た あ と も う 一 度 ビ ル ド し て み て く だ さ い マ 表 1 Do ( ke 「 コ マ ン ド ー 覧 コ マ ン ド 内 容 コ ン テ ナ の 一 覧 PS コ ン テ ナ の 起 動 Sta rt コ ン テ ナ の 作 成 と 起 動 run コ ン テ ナ の 停 止 StO p コ ン テ ナ の 再 起 動 resta rt コ ン テ ナ の 強 制 停 止 コ ン テ ナ の 削 除 rm イ メ ー ジ の 一 覧 lmages イ メ ー ジ を レ ジ ス ト リ か ら ダ ウ ン ロ ー ド pull Docke 而 e か ら イ メ ー ジ の 作 成 build 起 動 中 の コ ン テ ナ と も と の イ メ ー ジ 間 の フ ァ イ diff 丿 レ 差 分 を 表 示 起 動 中 の コ ン テ ナ か ら イ メ ー ジ の 作 成 commit イ メ ー ジ の 削 除 イ メ ー ジ を レ ジ ス ト リ へ ア ッ プ ロ ー ド push 起 動 中 の コ ン テ ナ か ら ホ ス ト マ シ ン へ フ ァ イ ル CP の コ ヒ 。 ー 起 動 中 の コ ン テ ナ 内 へ 新 た な プ ロ セ ス の 注 入 exec app. 「 b require 「 :p 「 oduction set : environment, get ソ “ d0 "Hello Docke 鬥 に 書 き 換 え る "Hello Docker" end $ docker build -t=myaccount/hello-wo 「 ld $ docker push myaccount/hello-world DockerHub で 自 分 の リ ポ ジ ト リ を 確 認 す る と 、 イ メ ー ジ が push さ れ て い る こ と が わ か り ま す 。 ロ ocker コ マ ン ド ー 覧 本 章 で 紹 介 し き れ な か っ た コ マ ン ド を 含 め 、 よ く 使 う コ マ ン ド を 表 1 に ま と め て お き ま す 。 ま と め ま 第 一 み 第 第 第 本 章 で は 、 Docker の 成 り 立 ち を 中 心 に Docker の 概 要 を 説 明 し 、 実 際 に Docker コ ン テ ナ を 動 か し て み ま し た 。 次 章 以 降 で は 、 Docker の 実 戦 投 入 に 向 け た ノ ウ ハ ウ を 紹 介 し て い き ま す 。 注 1 3 https:〃hub.docker.com/account/signup/ 94 ・ Ⅳ 第 B 十 DB P 第 55 MOL80