SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
コンテナの中のコンテナ
~Docker inside containers~
株式会社シャノン Platform Technologyグループ
藤倉 和明
1
お?
2
3
OpenVZコンテナの中で
Docker動かせたら色々捗りそう
4
試してみた
5
環境
ホストサーバ :AWSのEC2
instance-type : m3.medium
ホストサーバOS : OpenVZ
(2.6.32-042stab106.4)
Amazon EC2
6
セットアップ
042stab105.4以降のOpenVZを用意
vzctl 4.9以降のバージョンを用意
※ Paravirtualの場合はOpenVZカーネルをビルドする必要有り
7
セットアップ
とりあえず流れに沿って
コマンドを実行&実行して
OpenVZコンテナを立ち上げる
8
セットアップ
CentOS6の場合はOpenVZコンテナ内で
cgroup用のmountを実施する必要がある
9
コンテナの中でDockerを起動!
Docker daemon
起動したっぽい
10
docker runでコンテナ起動
centos imageを
pullし始めた
# docker run –i –t centos /bin/bash
11
Docker daemon
Dockerコンテナ
あっさり起動
12
Hostから見たプロセスツリー
OpenVZ コンテナのinit ->
Docker daemonの下にDocker
container のプロセスツリー ->
13
Amazon
EC2
container1 container2
Host instance
ディレクトリ構造はこんな感じだった
/vz/root/<
container1 _id>
/var/lib/docker/
/
/vz/root/<
container2 _id>
/var/lib/docker/
container1のdockerのディレクトリはHost instanceから見て /vz/root/< container1 _id>/var/lib/docker/
14
Amazon
EC2
eth0
container1 container2
veth1 veth2
eth0 eth0
br0
Host instance
ネットワーク構造はこんな感じになってた
docke
r0
veth_d
ocker1
eth0
docke
r0
veth_d
ocker1
eth0
Bridgeを使って親子間のネットワーク接続
15
仮想サーバ(EC2)の中に
仮想サーバ(OpenVZ)立てて
さらに仮想サーバ(Docker)立てた感じ
16
その他試してみた事
1:自分の環境をそのままimport
2:HostサーバでDocker daemon起動
17
自分の環境をimport
今動かしている自分の開発環境を
Docker container 化して検証する事がで
きますよ
でできる。
excludes.listは/dev/とか/proc/とか/sys/を除外するように記述する。
1:tar cfzp /tmp/iamge.tar.gz / -X /tmp/excludes.list # 容量等要注意!
2:cat iamge.tar.gz | docker import - myserver/v1
3:docker run –I –t -p 8080:8080 myserver/v1 /bin/bash
18
自分の環境をimport
これができると、自分の環境をそのまま試して壊せる。
opensslとかglibcとかのバージョン上げてみたいじゃ
ん?
自分の環境でDeployの検証とか手軽にしたいじゃ
ん?
もう怖くないよ!
19
HostサーバでDocker daemon起動
OpenVZコンテナでbridgeとか、
netfilter(iptables)が使えない場合もある
ので、それを回避する手段を考えてみた
20
Amazon
EC2
eth0
container1
veth1
eth0
br0
Host instance
今回試した構成はこんな感じになってたのを
docke
r0
veth_d
ocker1
eth0
Docker
client
Docker container
21
Amazon
EC2
eth0
container1
veth1
eth0
br0
Host instance
こんな感じにしてみた
docke
r0
veth_d
ocker1
eth0
Docker
client
Docker container
22
どゆこと?
23
Hostサーバでdocker daemonを起動させ
る。その時のオプションに一工夫
こんな感じでdaemon起動させると
OpenVZコンテナ内にリポジトリが出来て、
docker daemonと通信するsocketファイル
ができる。
# docker -H unix:///vz/root/<ctid>/var/run/docker.sock --
graph=/vz/root/<ctid>/var/lib/docker/ -d
24
Amazon
EC2
eth0
container1
veth1
eth0
br0
Host instance
利用者目線ではcontainers in container 的な使い方ができる
docke
r0
veth_d
ocker1
eth0
Docker
client
Docker container
OpenVZ コンテナ内から
Hostサーバで起動してる
Docker daemonの操作が
できる!
docker run ~
※ 注意点 ※
Host instanceとOpenVZ containerではDockerのバージョンを合わせておくこと。APIバージョン違うとコケるよ
25
Docker便利だね
これでもっと開発が楽しくなる?
26
シャノンでは一緒に楽しく開発してくれる
メンバーを募集中です!
楽しい開発環境を提供する事に悦びを感じら
れるインフラエンジニアも募集中です!
https://www.green-
japan.com/company/1632
27
おしまい
※ 本スライドは2016/03/09の社内
勉強会での資料を修正したものです

Mais conteúdo relacionado

Mais procurados

Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
Sho Shimizu
 
Trema での Open vSwitch
Trema での Open vSwitchTrema での Open vSwitch
Trema での Open vSwitch
kazuyas
 

Mais procurados (20)

LinuxをインストールしてWebサーバーを立ち上げてみよう
LinuxをインストールしてWebサーバーを立ち上げてみようLinuxをインストールしてWebサーバーを立ち上げてみよう
LinuxをインストールしてWebサーバーを立ち上げてみよう
 
Kickstart, Puppet, Docker
Kickstart, Puppet, DockerKickstart, Puppet, Docker
Kickstart, Puppet, Docker
 
Twemproxy (nutcracker)
Twemproxy (nutcracker)Twemproxy (nutcracker)
Twemproxy (nutcracker)
 
Ecs
EcsEcs
Ecs
 
社内勉強会(Docker)
社内勉強会(Docker)社内勉強会(Docker)
社内勉強会(Docker)
 
Docker Machineを始めるには?
Docker Machineを始めるには?Docker Machineを始めるには?
Docker Machineを始めるには?
 
Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像 Open vSwitchソースコードの全体像
Open vSwitchソースコードの全体像
 
マイクラ自動化枠第2回資料
マイクラ自動化枠第2回資料マイクラ自動化枠第2回資料
マイクラ自動化枠第2回資料
 
マイクラ自動化枠第1回資料
マイクラ自動化枠第1回資料マイクラ自動化枠第1回資料
マイクラ自動化枠第1回資料
 
Docker運用(入門編)
Docker運用(入門編)Docker運用(入門編)
Docker運用(入門編)
 
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
 
OpenvswitchでVPS
OpenvswitchでVPSOpenvswitchでVPS
OpenvswitchでVPS
 
Docker で xxxxxxサーバ を つくれませんでした
Docker で xxxxxxサーバ を つくれませんでしたDocker で xxxxxxサーバ を つくれませんでした
Docker で xxxxxxサーバ を つくれませんでした
 
Trema での Open vSwitch
Trema での Open vSwitchTrema での Open vSwitch
Trema での Open vSwitch
 
Docker v14
Docker v14Docker v14
Docker v14
 
DockerがYAVAY!
DockerがYAVAY!DockerがYAVAY!
DockerがYAVAY!
 
Rancher.ioを試してみる
Rancher.ioを試してみるRancher.ioを試してみる
Rancher.ioを試してみる
 
RancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにかRancherでMesosクラスタをデプロイしてみる的ななにか
RancherでMesosクラスタをデプロイしてみる的ななにか
 
Docker Swarm入門
Docker Swarm入門Docker Swarm入門
Docker Swarm入門
 
アプリ開発検証はLXC+Ansibleで楽ちんにやろう!
アプリ開発検証はLXC+Ansibleで楽ちんにやろう!アプリ開発検証はLXC+Ansibleで楽ちんにやろう!
アプリ開発検証はLXC+Ansibleで楽ちんにやろう!
 

Destaque

テスト環境まるごとAwsにのっけてみた
テスト環境まるごとAwsにのっけてみたテスト環境まるごとAwsにのっけてみた
テスト環境まるごとAwsにのっけてみた
Kazuaki Fujikura
 
[AWSマイスターシリーズ] Amazon VPC VPN & Direct Connect
[AWSマイスターシリーズ] Amazon VPC VPN & Direct Connect[AWSマイスターシリーズ] Amazon VPC VPN & Direct Connect
[AWSマイスターシリーズ] Amazon VPC VPN & Direct Connect
Amazon Web Services Japan
 

Destaque (17)

通信の安全を守るためにエンジニアができること
通信の安全を守るためにエンジニアができること通信の安全を守るためにエンジニアができること
通信の安全を守るためにエンジニアができること
 
幼稚園と保育園の違いとポイント(東京都版)
幼稚園と保育園の違いとポイント(東京都版)幼稚園と保育園の違いとポイント(東京都版)
幼稚園と保育園の違いとポイント(東京都版)
 
自律的なチームを作るために —組織心理学・臨床心理学の応用—
自律的なチームを作るために —組織心理学・臨床心理学の応用—自律的なチームを作るために —組織心理学・臨床心理学の応用—
自律的なチームを作るために —組織心理学・臨床心理学の応用—
 
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのかネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのか
 
20120914 aws summit_lt
20120914 aws summit_lt20120914 aws summit_lt
20120914 aws summit_lt
 
cross2012a fujya
cross2012a fujyacross2012a fujya
cross2012a fujya
 
テスト環境まるごとAwsにのっけてみた
テスト環境まるごとAwsにのっけてみたテスト環境まるごとAwsにのっけてみた
テスト環境まるごとAwsにのっけてみた
 
Security Night #1 AWSのセキュリティアプローチとTLS
Security Night #1 AWSのセキュリティアプローチとTLSSecurity Night #1 AWSのセキュリティアプローチとTLS
Security Night #1 AWSのセキュリティアプローチとTLS
 
Ossフル活用でinfrastructure as codeやってみた
Ossフル活用でinfrastructure as codeやってみたOssフル活用でinfrastructure as codeやってみた
Ossフル活用でinfrastructure as codeやってみた
 
[AWSマイスターシリーズ] Amazon VPC VPN & Direct Connect
[AWSマイスターシリーズ] Amazon VPC VPN & Direct Connect[AWSマイスターシリーズ] Amazon VPC VPN & Direct Connect
[AWSマイスターシリーズ] Amazon VPC VPN & Direct Connect
 
Dockerが抱えるネットワークの課題
Dockerが抱えるネットワークの課題Dockerが抱えるネットワークの課題
Dockerが抱えるネットワークの課題
 
ロードバランスへの長い道
ロードバランスへの長い道ロードバランスへの長い道
ロードバランスへの長い道
 
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
OpenVZ - Linux Containers:第2回 コンテナ型仮想化の情報交換会@東京
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker15分で分か(った気になれ)るDocker
15分で分か(った気になれ)るDocker
 
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
今さら聞けない人のためのDocker超入門 – OpenStack最新情報セミナー 2015年4月
 
Dockerを支える技術
Dockerを支える技術Dockerを支える技術
Dockerを支える技術
 

Semelhante a Docker inside containers

Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
Kazuyuki Mori
 
Dockerをすこーしさわってみる
DockerをすこーしさわってみるDockerをすこーしさわってみる
Dockerをすこーしさわってみる
Yuta Ohashi
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Masahiro Nagano
 

Semelhante a Docker inside containers (20)

Dockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しようDockerでらくらく開発・運用を体感しよう
Dockerでらくらく開発・運用を体感しよう
 
Docker入門
Docker入門Docker入門
Docker入門
 
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホンそろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
 
Docker swarm mode 入門と ECS との比較
Docker swarm mode 入門と ECS との比較Docker swarm mode 入門と ECS との比較
Docker swarm mode 入門と ECS との比較
 
Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法Docker for Windows & Web Apps for Containers 実践活用技法
Docker for Windows & Web Apps for Containers 実践活用技法
 
Dockerことはじめ的なはなし
Dockerことはじめ的なはなしDockerことはじめ的なはなし
Dockerことはじめ的なはなし
 
Dockerハンズオン
DockerハンズオンDockerハンズオン
Dockerハンズオン
 
JAWS-UG コンテナ支部 Docker入門 10分ハンズオン
JAWS-UG コンテナ支部 Docker入門 10分ハンズオンJAWS-UG コンテナ支部 Docker入門 10分ハンズオン
JAWS-UG コンテナ支部 Docker入門 10分ハンズオン
 
OpenShift 3で、DockerのPaaSを作る話
OpenShift 3で、DockerのPaaSを作る話OpenShift 3で、DockerのPaaSを作る話
OpenShift 3で、DockerのPaaSを作る話
 
コンテナ on Windows
コンテナ on Windowsコンテナ on Windows
コンテナ on Windows
 
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
 
JAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオンJAWS-UG コンテナ支部 Docker入門 ハンズオン
JAWS-UG コンテナ支部 Docker入門 ハンズオン
 
Weaveを試してみた
Weaveを試してみたWeaveを試してみた
Weaveを試してみた
 
OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門
 
Dockerをすこーしさわってみる
DockerをすこーしさわってみるDockerをすこーしさわってみる
Dockerをすこーしさわってみる
 
Dockerの導入
Dockerの導入Dockerの導入
Dockerの導入
 
AnsibleをWerckerでCIして
テストが終わると
本番環境が出来てる話
AnsibleをWerckerでCIして
テストが終わると
本番環境が出来てる話AnsibleをWerckerでCIして
テストが終わると
本番環境が出来てる話
AnsibleをWerckerでCIして
テストが終わると
本番環境が出来てる話
 
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
Dockerで遊んでみよっかー YAPC::Asia Tokyo 2014
 
Kubernetes introduction
Kubernetes introductionKubernetes introduction
Kubernetes introduction
 
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
Docker/Aarukas入門ハンズオン資料~第1回さくらとコンテナの夕べ #さくらの夕べ 番外編
 

Docker inside containers