Issues – docker-compose prepends current directory name to named volumes
What actually happens is that the named volume gets prepended with (a simplified version of) the directory name from which the docker-compose command was run.
For instance, if I run from the “dcompos-programs” directory, and I name the volume “my_named_vol”, then I end up with a volume named “dcompos-programs_my_named_vol”.
docker-compose-named-volume.yml:
[text]
version: ‘3’
services:
solr:
image: alpine:3.5
container_name: foo
volumes:
– my_named_vol:/opt/foo
volumes:
my_named_vol:
[/text]
Result:
[text]
$ docker-compose -f docker-compose-named-volume.yml up -d && \
> echo “## named volume:” && \
> docker volume ls | grep my_named_vol && \
> echo “## stop” && \
> docker-compose -f docker-compose-named-volume.yml down && \
> echo “## rm volume” && \
> docker volume rm $(docker volume ls | grep my_named_vol | awk ‘{print $2}’)
Creating network “deploymentroot_default” with the default driver
Creating volume “dcompos-programs_my_named_vol” with default driver
Creating foo
[/text]
Answer
docker-compose uses a project name. By default it’s the directory name which prevents collisions with existing containers. But you can use -p to change the prefix name.
Docker Tutorials Fundamental To Advanced-2021 Crash Course:- https://bit.ly/3hOIbTB
You can use the external volume setting to avoid the prefix.
https://docs.docker.com/compose/compose-file/#external
- Best AI tools for Software Engineers - November 4, 2024
- Installing Jupyter: Get up and running on your computer - November 2, 2024
- An Introduction of SymOps by SymOps.com - October 30, 2024