Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Docker マトリョーシカ Yasuhiro HARA JAWS-UGコンテナ支部 #2 LT @ 目黒 #jawsug_ct
Slide 2
Slide 2 text
Yasuhiro HARA ♥ / toricls
Slide 3
Slide 3 text
LT の内容 Docker + CI
Slide 4
Slide 4 text
例として Jenkins が 出てきますが 他の CI や開発環境でも (たぶん)使える話
Slide 5
Slide 5 text
ࣗલཧͷ CI ͰΑ͘ࠔΔ͜ͱ
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
たくさんのリポジトリ と たくさんの依存関係
Slide 8
Slide 8 text
Docker が解決してくれるかも
Slide 9
Slide 9 text
master slave ruby 2.0 slave ruby 2.1
Slide 10
Slide 10 text
- evarga/jenkins-slave (Docker Hub) https://hub.docker.com/r/evarga/jenkins-slave/ - Jenkins Docker Plugin https://wiki.jenkins-ci.org/display/JENKINS/Docker+Plugin 参考: Jenkins Slave in Docker
Slide 11
Slide 11 text
となると今度は master slave ruby 2.0 slave ruby 2.1 面倒な依存管理から 解放された!
Slide 12
Slide 12 text
この中で docker build とか docker push とかしたい slave ruby 2.0 master slave ruby 2.1
Slide 13
Slide 13 text
slave ruby 2.0 依存関係がキレイに管理された環境でテストを ぐりぐり回して docker build して出来上がっ たイメージを docker push したら Web フック でデプロイが走ってうふふふふ…
Slide 14
Slide 14 text
Docker コンテナの中で docker を インストールして試してみた ダメポヨ
Slide 15
Slide 15 text
やれます
Slide 16
Slide 16 text
- jpetazzo/dind (GitHub) https://github.com/jpetazzo/dind - Docker can now run within Docker | Docker Blog http://blog.docker.com/2013/09/docker-can-now-run- within-docker/ 参考: Docker in Docker いろいろ工夫されてるので 見てみると面白いかも
Slide 17
Slide 17 text
--privileged - Docker コンテナの中からホストマシンの全デバイスにアクセスできる特権モード - SELinux + Docker でマウントしたディレクトリへのアクセスの文脈でよく出てくる - 実は Docker 0.9 から用意されているオプション - 製品/サービスの本番環境とかでは使わなくて済むように環境が構築される方が無難 イケてる docker run オプション
Slide 18
Slide 18 text
D-in-D を試してみた
[email protected]
:~/$ docker run -it --privileged jpetazzo/dind:latest root@a227639b9373:/# docker run -it --privileged jpetazzo/dind:latest Unable to find image 'jpetazzo/dind:latest' locally ~ 省略 ~ root@3352505cddfe:/# docker run -it --privileged jpetazzo/dind:latest Unable to find image 'jpetazzo/dind:latest' locally ~ 省略 ~ root@5ec98d5d8b58:/# exit root@3352505cddfe:/# exit root@a227639b9373:/# exit
[email protected]
:~/$
Slide 19
Slide 19 text
D-in-D で注意したいこと docker rm しても /var/lib/docker にデータが 残るため、ディスク使用量が増え続ける → chadoe/docker-cleanup-volumes とか使う https://github.com/chadoe/docker-cleanup-volumes
Slide 20
Slide 20 text
- tehranian/dind-jenkins-slave (GitHub) https://github.com/tehranian/dind-jenkins-slave 参考: D-in-D for Jenkins docker コマンドが実行可能な Dockerized Jenkins スレーブを サクッと動かせるみたいです
Slide 21
Slide 21 text
- toricls/dind-gitlab-ci (GitHub) https://github.com/toricls/dind-gitlab-ci 参考: D-in-D for GitLab CI GitLab CI で簡単に Docker in Docker を 実現できます
Slide 22
Slide 22 text
Thank you :)