O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
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
通常の非仮想化環境
物理マシン (ハードウェア...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
5
ハイパーバイザー型仮想化環境
物理マシン (ハードウェア)
...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
ユーザー空間
(コンテナ)
6
コンテナ型仮想化環境
物理マシン...
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
コンテナのメリット
仮想マシンの起動を要するハイ...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
リソース消費が少ない
9
コンテナのメリット
仮想マシンを介さな...
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上に事
前に用...
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 ...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
18
Let’s Try!
$ sudo docker ps
C...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
19
コンテナ内でコマンドを
実行する
【書式】
docker ...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
20
Let’s Try!
$ sudo docker exec...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
21
コンテナを終了する
【書式】
docker stop [オ...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
22
Let’s Try!コンテナの終了
$ sudo dock...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
23
イメージを作成する
【書式】
docker build [...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
24
イメージ一覧を表示する
【書式】
docker image...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
25
Let’s Try!
$ mkdir ~/hogege
$...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
26
Let’s Try!
$ cat ./Dockerfile...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
27
Let’s Try!
$ sudo docker run ...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
28
コンテナを削除する
【書式】
docker rm [オプシ...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
29
Let’s Try!
$ sudo docker rm f...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
30
Let’s Retry!
$ sudo docker ru...
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 dock...
Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved.
33
Let’s Try!コンテナの連携
$ sudo dock...
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.faceb...
Próximos SlideShares
Carregando em…5
×

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

773 visualizações

Publicada em

AITCクラウドテクノロジー活用部会 2016年2月度 勉強会資料
(2016/02/19修正)

Publicada em: Tecnologia
  • Seja o primeiro a comentar

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

  1. 1. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 使ってわかる 今どきの 超入門 2016年2月18日 先端IT活用推進コンソーシアム クラウド・テクノロジー活用部会 勉強会資料 岡村 和英(株式会社テクリエ)
  2. 2. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ? 2
  3. 3. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. Linuxコンテナによる リソース分割を利用した 仮想化環境 3
  4. 4. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ユーザー空間 4 通常の非仮想化環境 物理マシン (ハードウェア) OS (カーネル空間) ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス
  5. 5. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 5 ハイパーバイザー型仮想化環境 物理マシン (ハードウェア) ホストOS ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス 仮想マシン ハイパーバイザー ゲストOS ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス 仮想マシン ゲストOS
  6. 6. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ユーザー空間 (コンテナ) 6 コンテナ型仮想化環境 物理マシン (ハードウェア) OS (カーネル空間) ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス ユーザー空間 (コンテナ) ユ ー ザ ー プ ロ セ ス ユ ー ザ ー プ ロ セ ス
  7. 7. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. コンテナ型仮想化 の メリット 7
  8. 8. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 起動が早い 8 コンテナのメリット 仮想マシンの起動を要するハイパーバイ ザー型仮想化とは異なり、ホストOS側の 処理としては通常の非仮想化環境下にお けるプロセスの起動とほとんど変わらな い。
  9. 9. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. リソース消費が少ない 9 コンテナのメリット 仮想マシンを介さないため、メモリ・ CPU・HDDなどのリソースを有効に活用 できる。 また、これにより一つの物理マシン上で より多くのプロセスを実行することが可 能となる。
  10. 10. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. ポータビリティが高い 10 コンテナのメリット HTTPサーバのみのコンテナなど機能に応 じた小さなコンテナを組み合わせて運用 することで、物理マシン間におけるコン テナの再配置や、スケールアウトなどへ の対応が容易となる。
  11. 11. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 面倒な説明はともかく 体験してみよう 11
  12. 12. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. Hands On 12
  13. 13. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 13 Today’s menu コンテナを起動してみる コンテナの中をのぞいてみる コンテナをカスタマイズしてみる コンテナ間で連携してみる
  14. 14. 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/
  15. 15. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 15 コンテナを起動する 【書式】 docker run [オプション...] イメージ名: タグ [コマンド] [引数...]
  16. 16. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 16 コンテナ一覧を表示する 【書式】 docker ps [オプション...]
  17. 17. 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: コンテナに名前をつける (今回の実習では他の人が実行したコン テナと区別するために明示的に名前をつ けます)
  18. 18. 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を行ったのとは別の端末画 面から実行すること!
  19. 19. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 19 コンテナ内でコマンドを 実行する 【書式】 docker exec [オプション...] コンテナID (又はコンテナ名) コマンド [引数...]
  20. 20. 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 コマンドを終了する コンテンツは存在しない
  21. 21. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 21 コンテナを終了する 【書式】 docker stop [オプション...] コンテナID (又はコンテナ名)...
  22. 22. 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: 全てのコンテナを表示する 終了したコンテナも表示される
  23. 23. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 23 イメージを作成する 【書式】 docker build [オプション...] パス名(又 はURL)... Dockerfileの記述内容に応じて、コンテ ナを起動する基となるイメージを作成 する
  24. 24. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 24 イメージ一覧を表示する 【書式】 docker images [オプション...] [イメー ジ名[:タグ名]] Dockerfileの記述内容に応じて、コンテ ナを起動する基となるイメージを作成 する
  25. 25. 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 各自の作業用ディレクトリを作成す る イメージ作成の準備 事前に用意された実習用ファイルを 取得する
  26. 26. 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の内容が実行される 作成したイメージが表示される
  27. 27. 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 作成したイメージからコンテナを 起動する イメージの確認 先に終了済みのコンテナと名前が 同一のためコンテナの起動に失敗 した!
  28. 28. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 28 コンテナを削除する 【書式】 docker rm [オプション...] コンテナID (又はコンテナ名)...
  29. 29. 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 終了済みのコンテナを削除する コンテナの削除 削除されたことを確認する
  30. 30. 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
  31. 31. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 31 コンテナを連携する
  32. 32. 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 コンテナをリンクする
  33. 33. 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コ ンテナにアクセスできる ことを確認する リンクされたコンテナの情 報が設定されていることを 確認する
  34. 34. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 34 あれ??? fpmコンテナ内に コンテンツファイルを コピーする必要 なかったんじゃない?
  35. 35. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. 35 Let’s Try!
  36. 36. Copyright © 2016 Advanced IT Consortium to Evaluate, Apply and Drive All Rights Reserved. http://aitc.jp https://www.facebook.com/aitc.jp ハルミン AITC非公式イメージキャラクター

×