More Related Content Similar to Dockerの基本的な話 (20) Dockerの基本的な話4. DOTCLOS BECOMING DOCKER, INC.
● https://blog.docker.com/2013/10/dotcloud-is-becoming-docker-inc/
● http://blog.dotcloud.com/dotcloud-paas-joins-cloudcontrol
社名変更(dotcound, inc. -> docker, inc.)
PaaS事業売却
dotCloudで利用されていたDockerを切り出して社名を変更
その後、dotCloudを売却し、Docker, Inc. はDockerに専念
8. 隔離空間で実行
● Namespaceによる隔離
○ PID: プロセス空間の隔離
○ MNT: ファイルシステムのマウント空間の隔離
○ IRC: 共有メモリやセマフォなどの隔離
○ UTS: uname() システムコールで取得できる情報の隔離
○ NET: ネットワークの隔離
● Cgroupによる隔離
○ cpu
○ cpuset
○ memory
○ device
参考: http://blog.etsukata.com/2014/05/docker-linux-kernel.html
14. どのような用途で使われている
か
● Continuous Integration
○ テスト(CI)を回すときに利用する事例
○ 依存しているライブラリやソフトウェアをパッケージ
ングしておいて、クリーンな環境でのテストを瞬時に
行う
● Easy Application Deployment
○ デプロイを簡易化する事例
○ パッケージングされたイメージをアップロードして起
動するだけで済む 参考: https://www.docker.com/resources/usecases/
15. どのような用途で使われている
か
● Distributed applications to scale
○ マイクロサービスと合わせる事例
○ 多くのサービスを容易にスケール可能としている
● Platform-as-a-Service (PaaS)
○ PaaSで提供するライブラリやソフトウェアをパッケー
ジングしておいて、瞬時に提供することが可能
参考: https://www.docker.com/resources/usecases/
16. ● サブドメインと立ち
上げるブランチを指
定すると、そのサブ
ドメインのURLで開
発環境がたちあがる
$ curl http://docker.myapp.example.net/api/launch ¥
-d subdomain=cool ¥
-d branch=feature/cool-cool-cool ¥
-d image=myapp:latest
http://tech.kayac.com/archive/mirage_for_docker.html より転載
Dockerで非エンジニアでも開発環境を上げ下げできる、
mirageというツールを作りました(面白法人カヤック様)
19. Mac/Windowsでとりあえず使うためには
● Boot2Docker
○ Virtual Box上にDocker用VMを立ち上げる
○ API経由でMac/Windowns上でDockerが動いているように見せてる
● Vagrantで任意のOS + Docker Provisioner
○ Docker Provisionerで起動時(provision)に最新のDockerがインスト
ールされる
○ Dockerのインストールにそこそこ時間がかかる
● VagrantでCoreOS
○ CoreOSは標準でDockerが入っている(後述)
21. DEMO: nginxを起動してみる
$ docker run -d -p 10080:80 nginx
$ docker exec -it {コンテナID} /bin/bash
docker-demo $ echo "Hello Docker." > /usr/share/nginx/html/index.html
docker-demo $ exit
$ curl 127.0.0.1:10080
Hello Docker!
24. DEMO: Imageを作ってみる
$ vim Dockerfile
FROM golang
WORKDIR /go
RUN go get github.com/hashicorp/consul
WORKDIR /go/src/github.com/hashicorp/consul
RUN make
ENTRYPOINT ["consul"]
$ docker build -t consul .
~ 省略 ~
$ docker run -i --rm consul
26. メリット
● 最低限のパッケージで構成されている
○ インストールや設定の作業時間が短い
○ ベースOSのディスク使用量が少ない
○ セキュリティーアップデートなどの運用負荷が少ない
● 最低限のサービス(機能)のみが動作する
○ ベースOSのCPU、メモリ等のリソース使用量が少ない
○ サービスが少ないため、脆弱性のリスクが軽減される
● リソースの空き容量が多くなる
○ より多くのコンテナを起動できる
http://thinkit.co.jp/story/2015/03/06/5672 より転載
28. 代表的なOS
- CoreOS
- CoreOS, Inc.
- https://coreos.com/
- Project Atomic
- Red Hat, Inc.
- http://www.projectatomic.io/
- Snappy Ubuntu Core
- Canoncial UK Ltd.
- http://developer.ubuntu.com/en/snappy/
35. proxy app
cache
- ○ 耐障害性の向上
- ○ 負荷分散可能
- ○ 1コンテナあたりのリソース増加
- ☓ 構成が複雑
Dockerをマルチホストで動かす場合
db
slave
proxy app app
db
master
log
db
slave
cachelog
53. - pod
- イメージ: nginx
- port: 80
- label: frontend
- container
- pods数: 3
- selector: frontend
- label: frontend
(※ 一部省略)
60. Docker, Inc の今後について
- 以前まではシンプルな Docker Engine の開発に注力し
ていた
- 今後は、Docker Machine / Swarm / Composeといった、
Dockerをより良く利用するためのツールが増えていく
と考えられる
- Kitematicを買収するなどして、GUIツールの開発も進
めていくのでは
61. AppContainer / Rocket
- Dockerの問題点や今後の方針を疑問視していた
CoreOSが発表したもの
- AppContainer
- コンテナイメージの仕様
- 標準化を視野に入れている
- Dockerイメージからの変換が可能
- Rocket
- AppContainerを動かすための実装
- 機能面でDockerに劣っているため、これからといっ
た印象