Docker

Vagrant内でDocker 1.12 の Swarm Modeを試してみる(環境構築)

Vgrantfileを作成する Swarm Modeのために複数台のサーバを用意したいので、Vagrantfileにそのようにコードを書いていきます。 Vagrantfile とりあえずUbuntuで3台立ち上げることに […]

広告ここから
広告ここまで

Vgrantfileを作成する

Swarm Modeのために複数台のサーバを用意したいので、Vagrantfileにそのようにコードを書いていきます。

Vagrantfile

とりあえずUbuntuで3台立ち上げることにしました。
Ansibleでプロビジョンさせようかと思ったのですが、今回の本筋じゃないのでシェルにしてます。
複数台のプロビジョンやるときはpathパラメータ使うと同じシェルを走らせれます。

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure( VAGRANTFILE_API_VERSION ) do | config |
	config.vm.define "docker_host1" do |vagrant1|
		vagrant1.vm.box = "ubuntu/trusty64"
		vagrant1.vm.box_check_update = true
		vagrant1.vm.network "private_network", ip: "192.168.33.70"
		vagrant1.vm.provision "shell", path: "setup.sh"
	end

	config.vm.define "docker_host2" do |vagrant2|
		vagrant2.vm.box = "ubuntu/trusty64"
		vagrant2.vm.box_check_update = true
		vagrant2.vm.network "private_network", ip: "192.168.33.80"
		vagrant2.vm.provision "shell", path: "setup.sh"
	end

	config.vm.define "docker_host3" do |vagrant3|
		vagrant3.vm.box = "ubuntu/trusty64"
		vagrant3.vm.box_check_update = true
		vagrant3.vm.network "private_network", ip: "192.168.33.90"
		vagrant3.vm.provision "shell", path: "setup.sh"
	end
end

setup.sh

こちらはprovision用のShell。3行目でvagrantユーザーがdockerコマンドを実行できるようにしてます。

#!/bin/bash
sudo curl -fsSL https://test.docker.com/ | sh
sudo gpasswd -a vagrant docker

VM立ち上げ -> Swarm Mode起動

$ vagrant up
$ vagrant ssh docker_host1

//Docker Swarm Modeを起動
$ docker swarm init --advertise-addr 192.168.33.70 --listen-addr 0.0.0.0
Swarm initialized: current node (a8XXXXXXXXXXXXXXXXXXXXd) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join \
    --token SWMTKN-1-5zXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2u-45XXXXXXXXXXXXXXX44499 \
    192.168.33.70:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

$ exit

// docker_host2をworkerに追加
$ vagrant ssh docker_host2
$ docker swarm join \
    --token SWMTKN-1-5zXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2u-45XXXXXXXXXXXXXXX44499 \
    192.168.33.70:2377
$ exit

// docker_host3をworkerに追加
$ vagrant ssh docker_host3
$ docker swarm join \
    --token SWMTKN-1-5zXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2u-45XXXXXXXXXXXXXXX44499 \
    192.168.33.70:2377

動作確認

$ docker node ls
ID                           HOSTNAME                  STATUS  AVAILABILITY  MANAGER STATUS
2XXXXXXXXXXXXXXXXXXXXXXXg    vagrant-ubuntu-trusty-64  Ready   Active        
aXXXXXXXXXXXXXXXXXXXXXXXd *  vagrant-ubuntu-trusty-64  Ready   Active        Leader
dXXXXXXXXXXXXXXXXXXXXXXXk    vagrant-ubuntu-trusty-64  Ready   Active  

とりあえずクラスタを組めたっぽいので、サービスを動かしたりRemote API叩いたりしてみます。

参考記事

Docker Swarm モード にゅうもん
Docker 1.12RC の swarm mode チュートリアル

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts