Storage volumes provide a powerful and flexible way to add persistent storage to your containers, but what if you need to share storage volumes across multiple Docker hosts, such as a Swarm cluster? In this lab, you will have the opportunity to work with a simple method of creating shared volumes usable across multiple swarm nodes using the `sshfs` volume driver.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Set up the external storage location.
On the storage server, create the storage directory.
sudo mkdir -p /etc/docker/storage sudo chown cloud_user:cloud_user /etc/docker/storage
Copy the nginx configuration file into the storage directory.
cp /home/cloud_user/nginx.conf /etc/docker/storage
- Install the vieux/sshfs plugin.
Install the
vieux/sshfs
plugin on the swarm manager and worker node.docker plugin install --grant-all-permissions vieux/sshfs
- Create the nginx service that uses the shared volume.
Create the
nginx-web
service.Create the container. Be sure to replace
<cloud_user password>
with the actual password.docker service create -d --replicas=3 --name nginx-web -p 8080:9773 --mount volume-driver=vieux/sshfs,source=nginx-config-vol,target=/etc/nginx/,[email protected]:/etc/docker/storage,volume-opt=password="<cloud_user password>" nginx:latest
Verify that the service is working properly.
curl localhost:8080
If everything is set up correctly, you should see HTML from the nginx Welcome page.