description | keywords | title |
---|---|---|
Setup for voting app example |
multi-container, services, swarm mode, cluster, voting app, docker-stack.yml, docker stack deploy |
Deploy the application |
In these steps, you'll use the docker-stack.yml
file to
deploy the voting application to the swarm you just created.
The docker-stack.yml
file must be located on a manager for the swarm where you want to deploy the application stack.
-
Get the
docker-stack.yml
file from the source code in the lab.Copy-and-paste the contents of that file into a file of the same name on your host.
Tip: To avoid text encoding errors from a direct file download, especially on Windows, create the file directly in a Linux environment on your local machine and copy-paste the raw text from the original
docker-stack.yml
. A file downloaded on a Windows system might include^M
line endings, which will prevent the app from running in the Docker Linux based environment. -
Copy
docker-stack.yml
from your host machine onto the manager.$ docker-machine scp ~/sandbox/voting-app/docker-stack.yml manager:/home/docker/. docker-stack.yml 100% 1558 1.5KB/s 00:00
-
Log into the manager node.
$ docker-machine ssh manager
The
ssh
login should put you in/home/docker/
by default. -
Check to make sure that the
.yml
file is there, usingls
.docker@manager:~$ ls /home/docker/ docker-stack.yml
We'll deploy the application from the manager.
-
Deploy the application stack based on the
.yml
using the commanddocker stack deploy
as follows.docker stack deploy --compose-file docker-stack.yml vote
-
The
--compose-file
option specifies the path to our stack file. In this case, we assume it's in the current directory so we simply name the stack file:docker-stack.yml
. -
For the example, we name this app
vote
, but we could name it anything we want.Here is an example of the command and the output.
docker@manager:~$ docker stack deploy --compose-file docker-stack.yml vote Creating network vote_default Creating network vote_backend Creating network vote_frontend Creating service vote_result Creating service vote_worker Creating service vote_visualizer Creating service vote_redis Creating service vote_db Creating service vote_vote
-
-
Verify that the stack deployed as expected with
docker stack services <APP-NAME>
.docker@manager:~$ docker stack services vote ID NAME MODE REPLICAS IMAGE 1zkatkq7sf8n vote_result replicated 1/1 dockersamples/examplevotingapp_result:after hphnxyt93h42 vote_redis replicated 2/2 redis:alpine jd0wafumrcil vote_vote replicated 2/2 dockersamples/examplevotingapp_vote:after msief4cqme29 vote_visualizer replicated 1/1 dockersamples/visualizer:stable qa6y8sfmtjoz vote_db replicated 1/1 postgres:9.4 w04bh1vumnep vote_worker replicated 1/1 dockersamples/examplevotingapp_worker:latest
In the next steps, we'll view components of the running app on web pages, and take the app for a test drive.