Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
使ってわかる
今どきの 超入門
2016年2月18日
先端IT活用推進コンソーシアム
クラウド・テクノロジー活用部会
勉強会資料
岡村 和英(株式会社テクリエ)
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
?
2
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
Linuxコンテナによる
リソース分割を利用した
仮想化環境
3
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ユーザー空間
4
通常の非仮想化環境
物理マシン (ハードウェア)
OS (カーネル空間)
ユ
ー
ザ
ー
プ
ロ
セ
ス
ユ
ー
ザ
ー
プ
ロ
セ
ス
ユ
ー
ザ
ー
プ
ロ
セ
ス
ユ
ー
ザ
ー
プ
ロ
セ
ス
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
5
ハイパーバイザー型仮想化環境
物理マシン (ハードウェア)
ホストOS
ユ
ー
ザ
ー
プ
ロ
セ
ス
ユ
ー
ザ
ー
プ
ロ
セ
ス
仮想マシン
ハイパーバイザー
ゲストOS
ユ
ー
ザ
ー
プ
ロ
セ
ス
ユ
ー
ザ
ー
プ
ロ
セ
ス
仮想マシン
ゲストOS
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ユーザー空間
(コンテナ)
6
コンテナ型仮想化環境
物理マシン (ハードウェア)
OS (カーネル空間)
ユ
ー
ザ
ー
プ
ロ
セ
ス
ユ
ー
ザ
ー
プ
ロ
セ
ス
ユーザー空間
(コンテナ)
ユ
ー
ザ
ー
プ
ロ
セ
ス
ユ
ー
ザ
ー
プ
ロ
セ
ス
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
コンテナ型仮想化
の
メリット
7
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
起動が早い
8
コンテナのメリット
仮想マシンの起動を要するハイパーバイ
ザー型仮想化とは異なり、ホストOS側の
処理としては通常の非仮想化環境下にお
けるプロセスの起動とほとんど変わらな
い。
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
リソース消費が少ない
9
コンテナのメリット
仮想マシンを介さないため、メモリ・
CPU・HDDなどのリソースを有効に活用
できる。
また、これにより一つの物理マシン上で
より多くのプロセスを実行することが可
能となる。
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ポータビリティが高い
10
コンテナのメリット
HTTPサーバのみのコンテナなど機能に応
じた小さなコンテナを組み合わせて運用
することで、物理マシン間におけるコン
テナの再配置や、スケールアウトなどへ
の対応が容易となる。
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
面倒な説明はともかく
体験してみよう
11
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
Hands On
12
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
13
Today’s menu
コンテナを起動してみる
コンテナの中をのぞいてみる
コンテナをカスタマイズしてみる
コンテナ間で連携してみる
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
14
始める前に
今日のハンズオン勉強会ではAWS上に事
前に用意した実習環境を用います。
後日おさらいをする場合には各自でLinux
環境を用意して下さい。
DockerはVM上のLinux環境でも動作しま
す。
https://docs.docker.com/engine/installation/
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
15
コンテナを起動する
【書式】
docker run [オプション...] イメージ名:
タグ [コマンド] [引数...]
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
16
コンテナ一覧を表示する
【書式】
docker ps [オプション...]
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
17
Let’s Try!
$ sudo docker run --name=fpm-hogege php:fpm
[17-Feb-2016 12:23:20] NOTICE: fpm is running, pid 1
[17-Feb-2016 12:23:20] NOTICE: ready to handle connections
console:1
コンテナがフォアグラウンドプロ
セスとして実行される
コンテナの起動
--name: コンテナに名前をつける
(今回の実習では他の人が実行したコン
テナと区別するために明示的に名前をつ
けます)
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
18
Let’s Try!
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
94fc6fe8f0be php:fpm "php-fpm" 3 seconds ago Up 2
seconds 9000/tcp fpm-hogege
実行中のコンテナ情報が表示される
コンテナの表示
console:2
docker runを行ったのとは別の端末画
面から実行すること!
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
19
コンテナ内でコマンドを
実行する
【書式】
docker exec [オプション...] コンテナID
(又はコンテナ名) コマンド [引数...]
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
20
Let’s Try!
$ sudo docker exec -ti fpm-hogege /bin/bash
root@94fc6fe8f0be:/var/www/html# ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 php-fpm: master process (/usr/local/etc/php-fpm.conf)
8 ? S 0:00 php-fpm: pool www
9 ? S 0:00 php-fpm: pool www
10 ? Ss 0:00 /bin/bash
15 ? R+ 0:00 ps ax
root@94fc6fe8f0be:/var/www/html# ls -a
. ..
root@94fc6fe8f0be:/var/www/html# exit
exit
$
-t: tty(端末デバイス)を割り当てる
-i: コンテナの標準入力を開く
コンテナ内で実行中のプロ
セスを表示する
コマンドの実行
console:2
コマンドを終了する
コンテンツは存在しない
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
21
コンテナを終了する
【書式】
docker stop [オプション...] コンテナID
(又はコンテナ名)...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
22
Let’s Try!コンテナの終了
$ sudo docker stop fpm-hogege
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS ....
$ sudo docker ps –a
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
94fc6fe8f0be php:fpm "php-fpm" 42 minutes ago Exited (0)
About a minute ago fpm-hogege
終了したコンテナは表示されない
console:2
-a: 全てのコンテナを表示する
終了したコンテナも表示される
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
23
イメージを作成する
【書式】
docker build [オプション...] パス名(又
はURL)...
Dockerfileの記述内容に応じて、コンテ
ナを起動する基となるイメージを作成
する
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
24
イメージ一覧を表示する
【書式】
docker images [オプション...] [イメー
ジ名[:タグ名]]
Dockerfileの記述内容に応じて、コンテ
ナを起動する基となるイメージを作成
する
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
25
Let’s Try!
$ mkdir ~/hogege
$ cd ~/hogege
$ git clone https://github.com/kzokm/aitc-cloud-
20160217 .
$ ls -R .
.:
Dockerfile www
./www:
index.php static.html
console:1
各自の作業用ディレクトリを作成す
る
イメージ作成の準備
事前に用意された実習用ファイルを
取得する
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
26
Let’s Try!
$ cat ./Dockerfile
FROM php:fpm
COPY www/* /var/www/html/
$ sudo docker build -t hogege/php:fpm .
Sending build context to Docker daemon 10.75 kB
Step 1 : FROM php:fpm
---> a630b021ad2a
Step 2 : COPY www/* /var/www/html/
---> e73d59c9b3f7
Removing intermediate container 809dd9b91a13
Successfully built e73d59c9b3f7
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
hogege/php fpm e73d59c9b3f7 19 seconds ago 495.8 MB
php fpm a630b021ad2a 11 days ago 495.8 MB
console:1
wwwディレクトリ以下のコンテン
ツをコンテナ内にコピーする
イメージの作成
-t: イメージ名をつける
Dockerfileの内容が実行される
作成したイメージが表示される
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
27
Let’s Try!
$ sudo docker run --name=fpm-hogege hogege/php:fpm
Error response from daemon: Conflict. The name "fpm-hogege" is already in
use by container 94fc6fe8f0be. You have to remove (or rename) that container
to be able to reuse that name.
console:1
作成したイメージからコンテナを
起動する
イメージの確認
先に終了済みのコンテナと名前が
同一のためコンテナの起動に失敗
した!
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
28
コンテナを削除する
【書式】
docker rm [オプション...] コンテナID
(又はコンテナ名)...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
29
Let’s Try!
$ sudo docker rm fpm-hogege
fpm-hogege
$ sudo docker ps –a
CONTAINER ID IMAGE COMMAND CREATED STATUS
PORTS NAMES
console:1
終了済みのコンテナを削除する
コンテナの削除
削除されたことを確認する
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
30
Let’s Retry!
$ sudo docker run --name=fpm-hogege hogege/php:fpm
[17-Feb-2016 14:43:45] NOTICE: fpm is running, pid 1
[17-Feb-2016 14:43:45] NOTICE: ready to handle connections
console:1
今度は正しく起動した
イメージの確認(再)
$ sudo docker exec -ti fpm-hogege /bin/bash
root@94fc6fe8f0be:/var/www/html# ls -a
. .. index.php static.html
root@94fc6fe8f0be:/var/www/html# exit
exit
$
コンテンツがコピーされて
いることを確認する
console:2
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
31
コンテナを連携する
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
32
Let’s Try!コンテナの連携
$ sudo docker run -d -p 8081:80
-v `pwd`/www:/var/www/html:ro
-v `pwd`/nginx:/etc/nginx/conf.d:ro
-v `pwd`/log/nginx:/var/log/nginx
--link fpm-hogege:php-app
nginx
a2311d93476feb085ee27ca782fa7879ebf790a3c6503720d67b590c521e991a
$
console:2
-d: コンテナをバックグラウンドで実
行する
-p : コンテナのポートをホスト側に公
開する
(今回の実習では他の人が実行したコ
ンテナと区別するために別々のホスト
側ポートを指定します)
-v ホスト側のディレクトリをコンテナ
内にマウントする
--link コンテナをリンクする
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
33
Let’s Try!コンテナの連携
$ sudo docker exec -ti a2311d93476f /bin/bash
root@a2311d93476f:/# ls /etc/nginx/conf.d
default.conf
root@a2311d93476f:/# ls /var/www/html
index.php static.html
root@a2311d93476f:/# printenv
PHP_APP_....
root@a2311d93476f:/# exit
$ curl http://localhost:8081/
<h1>Hello World!!!</h1>
<h3>PHP Version 7.0.3</h3>
<a href="/static.html">Static HTML Page</a>
$ ls log/nginx
access.log error.log
console:2
ホスト側ディレクトリがマ
ウントされていることを確
認する
ホスト側ディレクトリに
nginxのログが出力されて
いることを確認する
ホスト側ポートからnginx
コンテナを経由してfpmコ
ンテナにアクセスできる
ことを確認する
リンクされたコンテナの情
報が設定されていることを
確認する
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
34
あれ???
fpmコンテナ内に
コンテンツファイルを
コピーする必要
なかったんじゃない?
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
35
Let’s Try!
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
http://aitc.jp
https://www.facebook.com/aitc.jp
ハルミン
AITC非公式イメージキャラクター

使ってわかる 今どきのdocker超入門

  • 1.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 使ってわかる 今どきの 超入門 2016年2月18日 先端IT活用推進コンソーシアム クラウド・テクノロジー活用部会 勉強会資料 岡村 和英(株式会社テクリエ)
  • 2.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ? 2
  • 3.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. Linuxコンテナによる リソース分割を利用した 仮想化環境 3
  • 4.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ユーザー空間 4 通常の非仮想化環境 物理マシン (ハードウェア) OS (カーネル空間) ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス
  • 5.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 5 ハイパーバイザー型仮想化環境 物理マシン (ハードウェア) ホストOS ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス 仮想マシン ハイパーバイザー ゲストOS ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス 仮想マシン ゲストOS
  • 6.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ユーザー空間 (コンテナ) 6 コンテナ型仮想化環境 物理マシン (ハードウェア) OS (カーネル空間) ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス ユーザー空間 (コンテナ) ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス
  • 7.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. コンテナ型仮想化 の メリット 7
  • 8.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 起動が早い 8 コンテナのメリット 仮想マシンの起動を要するハイパーバイ ザー型仮想化とは異なり、ホストOS側の 処理としては通常の非仮想化環境下にお けるプロセスの起動とほとんど変わらな い。
  • 9.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. リソース消費が少ない 9 コンテナのメリット 仮想マシンを介さないため、メモリ・ CPU・HDDなどのリソースを有効に活用 できる。 また、これにより一つの物理マシン上で より多くのプロセスを実行することが可 能となる。
  • 10.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ポータビリティが高い 10 コンテナのメリット HTTPサーバのみのコンテナなど機能に応 じた小さなコンテナを組み合わせて運用 することで、物理マシン間におけるコン テナの再配置や、スケールアウトなどへ の対応が容易となる。
  • 11.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 面倒な説明はともかく 体験してみよう 11
  • 12.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. Hands On 12
  • 13.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 13 Today’s menu コンテナを起動してみる コンテナの中をのぞいてみる コンテナをカスタマイズしてみる コンテナ間で連携してみる
  • 14.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 14 始める前に 今日のハンズオン勉強会ではAWS上に事 前に用意した実習環境を用います。 後日おさらいをする場合には各自でLinux 環境を用意して下さい。 DockerはVM上のLinux環境でも動作しま す。 https://docs.docker.com/engine/installation/
  • 15.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 15 コンテナを起動する 【書式】 docker run [オプション...] イメージ名: タグ [コマンド] [引数...]
  • 16.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 16 コンテナ一覧を表示する 【書式】 docker ps [オプション...]
  • 17.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 17 Let’s Try! $ sudo docker run --name=fpm-hogege php:fpm [17-Feb-2016 12:23:20] NOTICE: fpm is running, pid 1 [17-Feb-2016 12:23:20] NOTICE: ready to handle connections console:1 コンテナがフォアグラウンドプロ セスとして実行される コンテナの起動 --name: コンテナに名前をつける (今回の実習では他の人が実行したコン テナと区別するために明示的に名前をつ けます)
  • 18.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 18 Let’s Try! $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 94fc6fe8f0be php:fpm "php-fpm" 3 seconds ago Up 2 seconds 9000/tcp fpm-hogege 実行中のコンテナ情報が表示される コンテナの表示 console:2 docker runを行ったのとは別の端末画 面から実行すること!
  • 19.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 19 コンテナ内でコマンドを 実行する 【書式】 docker exec [オプション...] コンテナID (又はコンテナ名) コマンド [引数...]
  • 20.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 20 Let’s Try! $ sudo docker exec -ti fpm-hogege /bin/bash root@94fc6fe8f0be:/var/www/html# ps ax PID TTY STAT TIME COMMAND 1 ? Ss 0:00 php-fpm: master process (/usr/local/etc/php-fpm.conf) 8 ? S 0:00 php-fpm: pool www 9 ? S 0:00 php-fpm: pool www 10 ? Ss 0:00 /bin/bash 15 ? R+ 0:00 ps ax root@94fc6fe8f0be:/var/www/html# ls -a . .. root@94fc6fe8f0be:/var/www/html# exit exit $ -t: tty(端末デバイス)を割り当てる -i: コンテナの標準入力を開く コンテナ内で実行中のプロ セスを表示する コマンドの実行 console:2 コマンドを終了する コンテンツは存在しない
  • 21.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 21 コンテナを終了する 【書式】 docker stop [オプション...] コンテナID (又はコンテナ名)...
  • 22.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 22 Let’s Try!コンテナの終了 $ sudo docker stop fpm-hogege $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS .... $ sudo docker ps –a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 94fc6fe8f0be php:fpm "php-fpm" 42 minutes ago Exited (0) About a minute ago fpm-hogege 終了したコンテナは表示されない console:2 -a: 全てのコンテナを表示する 終了したコンテナも表示される
  • 23.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 23 イメージを作成する 【書式】 docker build [オプション...] パス名(又 はURL)... Dockerfileの記述内容に応じて、コンテ ナを起動する基となるイメージを作成 する
  • 24.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 24 イメージ一覧を表示する 【書式】 docker images [オプション...] [イメー ジ名[:タグ名]] Dockerfileの記述内容に応じて、コンテ ナを起動する基となるイメージを作成 する
  • 25.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 25 Let’s Try! $ mkdir ~/hogege $ cd ~/hogege $ git clone https://github.com/kzokm/aitc-cloud- 20160217 . $ ls -R . .: Dockerfile www ./www: index.php static.html console:1 各自の作業用ディレクトリを作成す る イメージ作成の準備 事前に用意された実習用ファイルを 取得する
  • 26.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 26 Let’s Try! $ cat ./Dockerfile FROM php:fpm COPY www/* /var/www/html/ $ sudo docker build -t hogege/php:fpm . Sending build context to Docker daemon 10.75 kB Step 1 : FROM php:fpm ---> a630b021ad2a Step 2 : COPY www/* /var/www/html/ ---> e73d59c9b3f7 Removing intermediate container 809dd9b91a13 Successfully built e73d59c9b3f7 $ sudo docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hogege/php fpm e73d59c9b3f7 19 seconds ago 495.8 MB php fpm a630b021ad2a 11 days ago 495.8 MB console:1 wwwディレクトリ以下のコンテン ツをコンテナ内にコピーする イメージの作成 -t: イメージ名をつける Dockerfileの内容が実行される 作成したイメージが表示される
  • 27.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 27 Let’s Try! $ sudo docker run --name=fpm-hogege hogege/php:fpm Error response from daemon: Conflict. The name "fpm-hogege" is already in use by container 94fc6fe8f0be. You have to remove (or rename) that container to be able to reuse that name. console:1 作成したイメージからコンテナを 起動する イメージの確認 先に終了済みのコンテナと名前が 同一のためコンテナの起動に失敗 した!
  • 28.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 28 コンテナを削除する 【書式】 docker rm [オプション...] コンテナID (又はコンテナ名)...
  • 29.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 29 Let’s Try! $ sudo docker rm fpm-hogege fpm-hogege $ sudo docker ps –a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES console:1 終了済みのコンテナを削除する コンテナの削除 削除されたことを確認する
  • 30.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 30 Let’s Retry! $ sudo docker run --name=fpm-hogege hogege/php:fpm [17-Feb-2016 14:43:45] NOTICE: fpm is running, pid 1 [17-Feb-2016 14:43:45] NOTICE: ready to handle connections console:1 今度は正しく起動した イメージの確認(再) $ sudo docker exec -ti fpm-hogege /bin/bash root@94fc6fe8f0be:/var/www/html# ls -a . .. index.php static.html root@94fc6fe8f0be:/var/www/html# exit exit $ コンテンツがコピーされて いることを確認する console:2
  • 31.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 31 コンテナを連携する
  • 32.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 32 Let’s Try!コンテナの連携 $ sudo docker run -d -p 8081:80 -v `pwd`/www:/var/www/html:ro -v `pwd`/nginx:/etc/nginx/conf.d:ro -v `pwd`/log/nginx:/var/log/nginx --link fpm-hogege:php-app nginx a2311d93476feb085ee27ca782fa7879ebf790a3c6503720d67b590c521e991a $ console:2 -d: コンテナをバックグラウンドで実 行する -p : コンテナのポートをホスト側に公 開する (今回の実習では他の人が実行したコ ンテナと区別するために別々のホスト 側ポートを指定します) -v ホスト側のディレクトリをコンテナ 内にマウントする --link コンテナをリンクする
  • 33.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 33 Let’s Try!コンテナの連携 $ sudo docker exec -ti a2311d93476f /bin/bash root@a2311d93476f:/# ls /etc/nginx/conf.d default.conf root@a2311d93476f:/# ls /var/www/html index.php static.html root@a2311d93476f:/# printenv PHP_APP_.... root@a2311d93476f:/# exit $ curl http://localhost:8081/ <h1>Hello World!!!</h1> <h3>PHP Version 7.0.3</h3> <a href="/static.html">Static HTML Page</a> $ ls log/nginx access.log error.log console:2 ホスト側ディレクトリがマ ウントされていることを確 認する ホスト側ディレクトリに nginxのログが出力されて いることを確認する ホスト側ポートからnginx コンテナを経由してfpmコ ンテナにアクセスできる ことを確認する リンクされたコンテナの情 報が設定されていることを 確認する
  • 34.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 34 あれ??? fpmコンテナ内に コンテンツファイルを コピーする必要 なかったんじゃない?
  • 35.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 35 Let’s Try!
  • 36.
    Copyright © 2016Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. http://aitc.jp https://www.facebook.com/aitc.jp ハルミン AITC非公式イメージキャラクター