docker-machine, docker-compose, docker-swarm 覚書

19
docker-machine docker-composer docker-swarm “Author: Junya Nakazato © CA Advance, Inc. All Rights Reserved 1

Upload: -

Post on 16-Aug-2015

203 views

Category:

Engineering


7 download

TRANSCRIPT

Page 1: docker-machine, docker-compose, docker-swarm 覚書

docker-machinedocker-composer

docker-swarm“Author: Junya Nakazato

© CA Advance, Inc. All Rights Reserved 1

Page 2: docker-machine, docker-compose, docker-swarm 覚書

New Docker toolsDocker Marchine, Docker Compose, Docker Swarmをピックアップ!

© CA Advance, Inc. All Rights Reserved 2

Page 3: docker-machine, docker-compose, docker-swarm 覚書

docker-machineって?公式docker 自動環境構築EC2, digitalocean, Azure, virtualbox対応© CA Advance, Inc. All Rights Reserved 3

Page 4: docker-machine, docker-compose, docker-swarm 覚書

digitaloceanにデプロイするには…

© CA Advance, Inc. All Rights Reserved 4

Page 5: docker-machine, docker-compose, docker-swarm 覚書

howto :

digitaloceanにデプロイ# 適宜取得% export DIGITALOCEAN_TOKEN=TEKITOUNATOKEN

# サーバー構築!% docker-machine create -d digitalocean \--digitalocean-access-token=$DIGITALOCEAN_TOKEN \--digitalocean-region "sgp1" \--digitalocean-size "1gb" my-awesome-app

© CA Advance, Inc. All Rights Reserved 5

Page 6: docker-machine, docker-compose, docker-swarm 覚書

howto :

digitaloceanにデプロイdocker-machine list!!!1

# 管理が楽になるね!% docker-machine lsNAME DRIVER STATE URLlinux virtualbox Stoppedlinux-dev digitalocean Running tcp://128.199.164.1:2376

© CA Advance, Inc. All Rights Reserved 6

Page 7: docker-machine, docker-compose, docker-swarm 覚書

Local→VPS!!1vps-managerと(^_^)/~

# rails実験場が欲しければこれで% docker -it $(docker-machine config myapp) run rails bash% docker -it $(docker-machine config myapp) run rails c

# 終わったら削除% docker-machine rm myapp

© CA Advance, Inc. All Rights Reserved 7

Page 8: docker-machine, docker-compose, docker-swarm 覚書

docker-composeって?公式docker-tool 複数コンテナ同時実行yaml形式で構成定義マイクロサービスの実装形fig買収->docker-compose© CA Advance, Inc. All Rights Reserved 8

Page 9: docker-machine, docker-compose, docker-swarm 覚書

HOWTO : compose? 開発フロー» 1. docker-compose.ymlに構成を記載

» 2. %docker-compose build && docker-compose run

» 3. あとはサービスを使うだけ!

© CA Advance, Inc. All Rights Reserved 9

Page 10: docker-machine, docker-compose, docker-swarm 覚書

docker-compose.yml(1)mysql: image: mysql:5.7.7 environment: MYSQL_ROOT_PASSWORD: 'melody' ports: - '3306:3306' volumes_from: - datastorenginx: build: containers/nginx ports: - '80:80' volumes_from: - datastore links: - rails

© CA Advance, Inc. All Rights Reserved 10

Page 11: docker-machine, docker-compose, docker-swarm 覚書

docker-compose.yml(2)datastore: build: containers/datastorerails: build: . ports: - '3000:3000' environment: RAILS_ENV: production DATABASE_URL: mysql2://root:melody@mysql:3306 MYSQL_ROOT_PASSWORD: 'melody' volumes_from: - datastore links: - mysql

© CA Advance, Inc. All Rights Reserved 11

Page 12: docker-machine, docker-compose, docker-swarm 覚書

LodgeQiita Clonedocker-compose対応% git clone http://github.com/j138/lodge-docker

© CA Advance, Inc. All Rights Reserved 12

Page 13: docker-machine, docker-compose, docker-swarm 覚書

docker-swarm!?Dockerホストをクラスタ化Docker-machineとの親和性あり各種Dockerツールとの連携も今後予定

© CA Advance, Inc. All Rights Reserved 13

Page 14: docker-machine, docker-compose, docker-swarm 覚書

howto: docker-swarm1. トークン生成% docker-swarm create7988b7fb66edd9573eac62eefb87007f% export SWARM_TOKEN=7988b7fb66edd9573eac62eefb87007f

© CA Advance, Inc. All Rights Reserved 14

Page 15: docker-machine, docker-compose, docker-swarm 覚書

howto: docker-swarm2. docker-machineでマシン構築% docker-machine create -d digitalocean \--digitalocean-access-token=$DIGITALOCEAN_TOKEN --swarm --swarm-master \--swarm-discovery token://$SWARM_TOKEN swarm-master

% docker-machine create -d digitalocean \--digitalocean-access-token=$DIGITALOCEAN_TOKEN --swarm \--swarm-discovery token://$SWARM_TOKEN node01

© CA Advance, Inc. All Rights Reserved 15

Page 16: docker-machine, docker-compose, docker-swarm 覚書

howto: docker-swarm3. swarm-masterへの紐付けチェック% docker-machine lsNAME DRIVER STATE URL SWARMswarm-master digitalocean Running tcp://45.55.184.3:2376 swarm-master (master)swarm-node01 digitalocean Running tcp://128.199.164.1:2376 swarm-masterswarm-node02 digitalocean Running tcp://128.199.163.254:2376 swarm-masterswarm-node03 digitalocean Running tcp://128.199.167.1:2376 swarm-master

© CA Advance, Inc. All Rights Reserved 16

Page 17: docker-machine, docker-compose, docker-swarm 覚書

howto: docker-swarm4. コンテナの起動紐つけたホストに対して、コンテナを分散して起動してくれる!社内だと22番ポート閉じられてて、digitaloceanで試せなかった><IPアドレスに注目!% docker run -d -p 80:80 dockerfile/nginx% docker run -d -p 80:80 dockerfile/nginx

% docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS63abf37db4cf dockerfile/nginx:latest "nginx" 11 seconds ago Up 6 seconds 443/tcp, 10.3.0.52:80->80/tcpd21f305376aa dockerfile/nginx:latest "nginx" 4 minutes ago Up 4 minutes 443/tcp, 10.3.0.67:80->80/tcp

© CA Advance, Inc. All Rights Reserved 17

Page 18: docker-machine, docker-compose, docker-swarm 覚書

いろいろ喋ったけど。。。machine, compose, swarmまだベータなので注意!© CA Advance, Inc. All Rights Reserved 18

Page 19: docker-machine, docker-compose, docker-swarm 覚書

docker ❤

ENJOY!© CA Advance, Inc. All Rights Reserved 19