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
ネットワーク構造はこんな感じになってた
docker0
veth_docker1
eth0
docker0
veth_docker1
eth0
Bridgeを使って親子間のネットワーク接続
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の検証とか手軽にしたいじゃん? もう怖くないよ!
20
Amazon EC2
eth0
container1
veth1
eth0
br0
Host instance
今回試した構成はこんな感じになってたのを
docker0
veth_docker1
eth0
Docker client
Docker container
21
Amazon EC2
eth0
container1
veth1
eth0
br0
Host instance
こんな感じにしてみた
docker0
veth_docker1
eth0 Docker client
Docker container
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 的な使い方ができる
docker0
veth_docker1
eth0 Docker client
Docker container OpenVZ コンテナ内からHostサーバで起動してるDocker daemonの操作ができる!
docker run ~
※ 注意点 ※ Host instanceとOpenVZ containerではDockerのバージョンを合わせておくこと。APIバージョン違うとコケるよ
26
シャノンでは一緒に楽しく開発してくれる メンバーを募集中です!
楽しい開発環境を提供する事に悦びを感じられるインフラエンジニアも募集中です!
https://www.green-japan.com/company/1632
Recommended