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.
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.
vieux/sshfsplugin 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 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@example.com:/etc/docker/storage,volume-opt=password=<cloud_user password> nginx:latest
Verify that the service is working properly.
If everything is set up correctly, you should see HTML from the nginx Welcome page.