SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
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非公式イメージキャラクター

Mais conteúdo relacionado

Mais procurados

爆速プレビュープロキシ pool
爆速プレビュープロキシ pool爆速プレビュープロキシ pool
爆速プレビュープロキシ poolmookjp
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもんMasahito Zembutsu
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪Kunihiro TANAKA
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかえむ ばーど
 
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションDocker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションMasahito Zembutsu
 
JAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオンJAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオンRyo Nakamaru
 
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホンそろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術と DockerのキホンNaoki Nagazumi
 
DockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようDockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようmookjp
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Masahito Zembutsu
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化Yuki Kanazawa
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Masahiro Nagano
 
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
【さくらのクラウド】Jupyter Notebook スタートアップスクリプトさくらインターネット株式会社
 
JAWS-UG コンテナ支部 Docker入門 10分ハンズオン
JAWS-UG コンテナ支部 Docker入門 10分ハンズオンJAWS-UG コンテナ支部 Docker入門 10分ハンズオン
JAWS-UG コンテナ支部 Docker入門 10分ハンズオンRyo Nakamaru
 
Rancher command line interface
Rancher command line interfaceRancher command line interface
Rancher command line interfaceMasahito Zembutsu
 
【社内勉強会】Docker入門
【社内勉強会】Docker入門【社内勉強会】Docker入門
【社内勉強会】Docker入門Kazuki Murahama
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Masahito Zembutsu
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
DockerハンズオンKazuyuki Mori
 
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINARVirtualTech Japan Inc.
 
Docker 17.06 Updates 最近何が変わったの?
Docker 17.06 Updates 最近何が変わったの?Docker 17.06 Updates 最近何が変わったの?
Docker 17.06 Updates 最近何が変わったの?Masahito Zembutsu
 

Mais procurados (20)

爆速プレビュープロキシ pool
爆速プレビュープロキシ pool爆速プレビュープロキシ pool
爆速プレビュープロキシ pool
 
Docker Swarm モード にゅうもん
Docker Swarm モード にゅうもんDocker Swarm モード にゅうもん
Docker Swarm モード にゅうもん
 
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
いまさら聞けないDocker - 第5回コンテナ型仮想化の情報交換会@大阪
 
Docker社内勉強会
Docker社内勉強会Docker社内勉強会
Docker社内勉強会
 
コンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのかコンテナ型仮想化とはなんだったのか
コンテナ型仮想化とはなんだったのか
 
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーションDocker技術情報アップデート v1.9 ネットワークとオーケストレーション
Docker技術情報アップデート v1.9 ネットワークとオーケストレーション
 
JAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオンJAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオン
 
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホンそろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
 
DockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようDockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみよう
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
 
【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化【dots. IT勉強会】開発環境のDocker化
【dots. IT勉強会】開発環境のDocker化
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
 
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
【さくらのクラウド】Jupyter Notebook スタートアップスクリプト
 
JAWS-UG コンテナ支部 Docker入門 10分ハンズオン
JAWS-UG コンテナ支部 Docker入門 10分ハンズオンJAWS-UG コンテナ支部 Docker入門 10分ハンズオン
JAWS-UG コンテナ支部 Docker入門 10分ハンズオン
 
Rancher command line interface
Rancher command line interfaceRancher command line interface
Rancher command line interface
 
【社内勉強会】Docker入門
【社内勉強会】Docker入門【社内勉強会】Docker入門
【社内勉強会】Docker入門
 
Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴Docker最新動向2017秋+セキュリティの落とし穴
Docker最新動向2017秋+セキュリティの落とし穴
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
 
Docker 17.06 Updates 最近何が変わったの?
Docker 17.06 Updates 最近何が変わったの?Docker 17.06 Updates 最近何が変わったの?
Docker 17.06 Updates 最近何が変わったの?
 

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

DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念Masahito Zembutsu
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
Introduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 SpringIntroduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 SpringGo Chiba
 
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Emma Haruka Iwao
 
コンテナの基本 ~Docker実践~
コンテナの基本 ~Docker実践~コンテナの基本 ~Docker実践~
コンテナの基本 ~Docker実践~Ryosuke Uchiyama
 
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたWindows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたTakashi Kanai
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例maebashi
 
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08Nobuto Murata
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1Kotaro Noyama
 
OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!ksk_ha
 
Dockerエンタープライズ利用について
Dockerエンタープライズ利用についてDockerエンタープライズ利用について
Dockerエンタープライズ利用についてMitsutoshi Kiuchi
 
Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!Takashi Kanai
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門Masahito Zembutsu
 
Docker講習会資料
Docker講習会資料Docker講習会資料
Docker講習会資料teruyaono1
 
Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Etsuji Nakai
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Yuichi Ito
 

Semelhante a 使ってわかる 今どきのdocker超入門 (20)

Jenkins 2.0 (日本語)
Jenkins 2.0 (日本語)Jenkins 2.0 (日本語)
Jenkins 2.0 (日本語)
 
LinAction Theme Docker
LinAction Theme DockerLinAction Theme Docker
LinAction Theme Docker
 
DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念DockerとDocker Hubの操作と概念
DockerとDocker Hubの操作と概念
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
Introduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 SpringIntroduction of Rancher at OSC Tokyo 17 Spring
Introduction of Rancher at OSC Tokyo 17 Spring
 
20230128.pptx
20230128.pptx20230128.pptx
20230128.pptx
 
Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月Docker事始めと最新動向 2015年6月
Docker事始めと最新動向 2015年6月
 
コンテナの基本 ~Docker実践~
コンテナの基本 ~Docker実践~コンテナの基本 ~Docker実践~
コンテナの基本 ~Docker実践~
 
Windows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみたWindows Server 2016でコンテナを動かしてみた
Windows Server 2016でコンテナを動かしてみた
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
 
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
 
今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門今さら聞けない人のためのDocker超入門
今さら聞けない人のためのDocker超入門
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!OpenStackでも重要な役割を果たすPacemakerを知ろう!
OpenStackでも重要な役割を果たすPacemakerを知ろう!
 
Dockerエンタープライズ利用について
Dockerエンタープライズ利用についてDockerエンタープライズ利用について
Dockerエンタープライズ利用について
 
Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!Windows Server 2016上でLinuxコンテナが動いた!
Windows Server 2016上でLinuxコンテナが動いた!
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 
Docker講習会資料
Docker講習会資料Docker講習会資料
Docker講習会資料
 
Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会
 
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方Docker入門: コンテナ型仮想化技術の仕組みと使い方
Docker入門: コンテナ型仮想化技術の仕組みと使い方
 

Mais de Kazuhide Okamura

協働プロジェクト「空気を読む家」キッチンにおけるデータ収集
協働プロジェクト「空気を読む家」キッチンにおけるデータ収集協働プロジェクト「空気を読む家」キッチンにおけるデータ収集
協働プロジェクト「空気を読む家」キッチンにおけるデータ収集Kazuhide Okamura
 
いろんなセンサーで 家の中のいろいろなものを測ってみた
いろんなセンサーで 家の中のいろいろなものを測ってみたいろんなセンサーで 家の中のいろいろなものを測ってみた
いろんなセンサーで 家の中のいろいろなものを測ってみたKazuhide Okamura
 
気象予報データ(数値予報GPV)を用いた データビジュアライゼーション
気象予報データ(数値予報GPV)を用いたデータビジュアライゼーション気象予報データ(数値予報GPV)を用いたデータビジュアライゼーション
気象予報データ(数値予報GPV)を用いた データビジュアライゼーションKazuhide Okamura
 
マンガ駆動開発のすゝめ
マンガ駆動開発のすゝめマンガ駆動開発のすゝめ
マンガ駆動開発のすゝめKazuhide Okamura
 
ニューラルネットワーク ことはじめ
ニューラルネットワーク ことはじめニューラルネットワーク ことはじめ
ニューラルネットワーク ことはじめKazuhide Okamura
 
遺伝的アルゴリズム (Genetic Algorithm)を始めよう! 【簡略版】
遺伝的アルゴリズム(Genetic Algorithm)を始めよう! 【簡略版】遺伝的アルゴリズム(Genetic Algorithm)を始めよう! 【簡略版】
遺伝的アルゴリズム (Genetic Algorithm)を始めよう! 【簡略版】Kazuhide Okamura
 
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!Kazuhide Okamura
 

Mais de Kazuhide Okamura (7)

協働プロジェクト「空気を読む家」キッチンにおけるデータ収集
協働プロジェクト「空気を読む家」キッチンにおけるデータ収集協働プロジェクト「空気を読む家」キッチンにおけるデータ収集
協働プロジェクト「空気を読む家」キッチンにおけるデータ収集
 
いろんなセンサーで 家の中のいろいろなものを測ってみた
いろんなセンサーで 家の中のいろいろなものを測ってみたいろんなセンサーで 家の中のいろいろなものを測ってみた
いろんなセンサーで 家の中のいろいろなものを測ってみた
 
気象予報データ(数値予報GPV)を用いた データビジュアライゼーション
気象予報データ(数値予報GPV)を用いたデータビジュアライゼーション気象予報データ(数値予報GPV)を用いたデータビジュアライゼーション
気象予報データ(数値予報GPV)を用いた データビジュアライゼーション
 
マンガ駆動開発のすゝめ
マンガ駆動開発のすゝめマンガ駆動開発のすゝめ
マンガ駆動開発のすゝめ
 
ニューラルネットワーク ことはじめ
ニューラルネットワーク ことはじめニューラルネットワーク ことはじめ
ニューラルネットワーク ことはじめ
 
遺伝的アルゴリズム (Genetic Algorithm)を始めよう! 【簡略版】
遺伝的アルゴリズム(Genetic Algorithm)を始めよう! 【簡略版】遺伝的アルゴリズム(Genetic Algorithm)を始めよう! 【簡略版】
遺伝的アルゴリズム (Genetic Algorithm)を始めよう! 【簡略版】
 
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
遺伝的アルゴリズム(Genetic Algorithm)を始めよう!遺伝的アルゴリズム(Genetic Algorithm)を始めよう!
遺伝的アルゴリズム (Genetic Algorithm)を始めよう!
 

Último

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 

Último (11)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

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

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