[英]Stop docker compose volume from mounting in container after volume reference removed in file
我目前正在使用 docker compose 文件运行自定义构建的 docker 容器。 docker compose 文件如下所示:
version: '2'
services:
ubuntu:
privileged: true
image: custom_docker_image:17
container_name: custom_docker_container
command: '/usr/bin/supervisord'
volumes:
- /custom_docker_path/public:/public
- /custom_docker_path/data/logs:/data/logs
- /custom_docker_path/var/log:/var/log
- /custom_docker_path/etc/nginx:/etc/nginx
- /custom_docker_path/etc/supervisor:/etc/supervisor
- /etc/letsencrypt:/etc/letsencrypt
ports:
- '9202:9200'
docker 容器运行服务和进程,这些服务和进程使用主管保持活动状态。 一切都按预期运行,直到我更改了卷安装。
该文件以前用于具有如下卷:
version: '2'
services:
ubuntu:
privileged: true
image: custom_docker_image:17
container_name: custom_docker_container
command: '/usr/bin/supervisord'
volumes:
- /custom_docker_path/public/db:/public/db
- /custom_docker_path/public/settings:/public/settings
- /custom_docker_path/data/logs:/data/logs
- /custom_docker_path/var/log:/var/log
- /custom_docker_path/etc/nginx:/etc/nginx
- /custom_docker_path/etc/supervisor:/etc/supervisor
- /etc/letsencrypt:/etc/letsencrypt
ports:
- '9202:9200'
以前,只有容器中公共目录中的 db 和 settings 文件夹与主机共享。 然后我决定与主机共享整个公共目录。
共享成功,除了db和settings文件夹仍然与整个公共目录一起共享。
在容器内运行mount命令显示以下内容:
/dev/mapper/host_machine_mount root on /public type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/mapper/host_machine_mount root on /data/logs type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/mapper/host_machine_mount root on /public/db type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/mapper/host_machine_mount root on /public/settings type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/mapper/host_machine_mount root on /etc/supervisor type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/mapper/host_machine_mount root on /etc/letsencrypt type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/mapper/host_machine_mount root on /var/log type ext4 (rw,relatime,errors=remount-ro,data=ordered)
/dev/mapper/host_machine_mount root on /etc/nginx type ext4 (rw,relatime,errors=remount-ro,data=ordered)
从上面可以看出, /public被挂载, /public/db和/public/settings也是如此,即使它们在新的 docker-compose 文件中没有被引用。
我提升了容器中的权限,以便在容器启动后手动删除挂载,这有效 - 但我无法继续进入容器并删除两个挂载点。
我还尝试删除 docker 和 pruning 之外的卷,但是这两个目录在启动时仍然挂载在容器内。
尝试运行:
docker-compose down -v
docker volume rm "volume_name"
docker volume prune
在容器运行、停止以及重新启动之前和之后尝试了上述命令。
如何阻止这两个目录安装在容器内?
尝试使用docker-compose down -v
删除在 docker-compose.yml 中声明的所有容器和卷
https://docs.docker.com/compose/reference/down/
-v, --volumes 删除在 Compose 文件的
volumes
部分中声明的命名卷和附加到容器的匿名卷。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.