Sharing Volumes Between Docker Containers
In docker, it's easy to share data between containers with the --volumes-from
flag.
First let's create a Dockerfile that declares a volume.
from apline:latest
volume ["/foo"]
Then let's:
-
Build it into an image
foo-image
-
Create & Run it as a container with the name
foo-container
- Put some text into a file in the volume
docker build . -t foo-image
docker run -it --name foo-container foo-image sh -c 'echo abc > /foo/test.txt'
When you run docker volume ls
you can see a volume is listed. By running a container from an image with a volume we've created a volume.
When you run docker container ls -a
you can see that we've also created a container. It's stopped currently, but the volume is still available.
Now let's run another container passing the name of our previously created container to the --volumes-from
flag.
docker run -it --volumes-from foo-container alpine cat /foo/test.txt
# outputs: abc
We've accessed the volume of the container and output the results.
Tweet