This project is to similify the setup for Docker Swarm
And it will enable the flat network among the cluster nodes to similfy the network access.
The following command will build the swarm binary with the patch for supporting the cross-host container linking from https://github.com/denverdino/swarm. And it will retrieve the latest Docker binary build.
./build.sh
./swarm create
680b0b72274e2e8c48bcedc05ce54afd
Modify the Vagrantfile to change the minion numbers, token
Modify the provision-network.sh to change the --insecure-registry setting if need
This application is available in the form of a Docker image that you can run as a container by executing this command:
vagrant up
vagrant provision    
Run the Swarm manager (please change the token)
./swarm manage  --discovery token://680b0b72274e2e8c48bcedc05ce54afd -H 127.0.0.1:4243 
export DOCKER_HOST=127.0.0.1:4243
docker info
docker run -d dockerfile/nginx
Try the Fig (please get the latest Fig from https://github.com/denverdino/fig
We leverage the pattern from the http://www.fig.sh/wordpress.html for the testing. The web container access the db container through link. NOTE: So far, we cannot support the Fig template with build command, and we need to build the image in Fig template firstly and push it to DockerHub or private docker registry.
web:
  image: jadetest.cn.ibm.com:5000/fig_test/wordpress
  ports:
    - "8000:8000"
  links:
    - db
db:
  image: jadetest.cn.ibm.com:5000/orchardup/mysql
  environment:
    MYSQL_DATABASE: wordpress
Then we can use the commond fig command to deploy it into Docker Swarm cluster
yili@jadetest:~/wordpress$ fig up -d
Creating wordpress_db_1...
Creating wordpress_web_1...
yili@jadetest:~/wordpress$ fig ps
     Name                    Command               State             Ports           
------------------------------------------------------------------------------------
wordpress_db_1    /usr/local/bin/run               Up      3306/tcp                  
wordpress_web_1   /bin/sh -c php -S 0.0.0.0: ...   Up      10.246.2.3:8000->8000/tcp 
yili@jadetest:~/wordpress$ docker ps
CONTAINER ID        IMAGE                                                COMMAND                CREATED             STATUS                  PORTS                       NAMES
920087b75a6b        jadetest.cn.ibm.com:5000/fig_test/wordpress:latest   "/bin/sh -c 'php -S    11 seconds ago      Up Less than a second   10.246.2.3:8000->8000/tcp   swarm-minion-2/wordpress_web_1   
8966ac5ee014        jadetest.cn.ibm.com:5000/orchardup/mysql:latest      "/usr/local/bin/run"   34 seconds ago      Up 10 seconds           3306/tcp                    swarm-minion-2/wordpress_db_1    
yili@jadetest:~/wordpress$ fig scale web=2
Starting wordpress_web_2...
yili@jadetest:~/wordpress$ docker ps
CONTAINER ID        IMAGE                                                     COMMAND                CREATED              STATUS              PORTS                       NAMES
85fc2796a48d        jadetest.cn.ibm.com:5000/svendowideit/ambassador:latest   "\"/bin/sh -c 'env |   49 seconds ago       Up 30 seconds       3306/tcp                    swarm-minion-1/wordpress_web_2/db,swarm-minion-1/wordpress_web_2/db_1,swarm-minion-1/wordpress_web_2/wordpress_db_1,swarm-minion-1/wordpress_web_2_ambassador_wordpress_db_1   
f536fb5b2c45        jadetest.cn.ibm.com:5000/fig_test/wordpress:latest        "/bin/sh -c 'php -S    52 seconds ago       Up 30 seconds       10.246.2.2:8000->8000/tcp   swarm-minion-1/wordpress_web_2                                                                                                                                                 
920087b75a6b        jadetest.cn.ibm.com:5000/fig_test/wordpress:latest        "/bin/sh -c 'php -S    About a minute ago   Up About a minute   10.246.2.3:8000->8000/tcp   swarm-minion-2/wordpress_web_1                                                                                                                                                 
8966ac5ee014        jadetest.cn.ibm.com:5000/orchardup/mysql:latest           "/usr/local/bin/run"   About a minute ago   Up About a minute   3306/tcp                    swarm-minion-2/wordpress_db_1,swarm-minion-2/wordpress_web_1/db,swarm-minion-2/wordpress_web_1/db_1,swarm-minion-2/wordpress_web_1/wordpress_db_1
And you can access the two different public endpoints for Wordpress deployment, and both of them will link to the same MySQL database container.
http://10.246.2.2:8000/wordpress
http://10.246.2.3:8000/wordpress
Enjoy!