如何解决在文件中删除卷引用后,停止 docker compose 卷安装在容器中
我目前正在使用 docker compose 文件运行自定义构建的 docker 容器。 docker compose 文件如下所示:
function myfunction($file) {
$finfo = new finfo(FILEINFO_MIME_TYPE);
$content_mime = $finfo->file($file->uri);
}
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:/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'
以前,只有容器中公共目录中的db和settings文件夹与主机共享。然后我决定与主机共享整个公共目录。
共享成功,除了 db 和 settings 文件夹仍然与整个公共目录一起共享。
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'
从上面,/public 被挂载,/public/db 和 /public/settings 也是如此,即使它们没有被引用在新的 docker-compose 文件中。
我提升了容器中的权限,以便在容器启动后手动移除挂载,这有效 - 但我无法继续进入容器并移除两个挂载点。
我也尝试删除 docker 和修剪之外的卷,但是这两个目录在启动时仍然挂载在容器内。
尝试运行:
/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,data=ordered)
/dev/mapper/host_machine_mount root on /public/db type ext4 (rw,data=ordered)
/dev/mapper/host_machine_mount root on /public/settings type ext4 (rw,data=ordered)
/dev/mapper/host_machine_mount root on /etc/supervisor type ext4 (rw,data=ordered)
/dev/mapper/host_machine_mount root on /etc/letsencrypt type ext4 (rw,data=ordered)
/dev/mapper/host_machine_mount root on /var/log type ext4 (rw,data=ordered)
/dev/mapper/host_machine_mount root on /etc/Nginx type ext4 (rw,data=ordered)
docker-compose down -v
docker volume rm "volume_name"
在容器运行、停止以及重启前后尝试了上述命令。
如何阻止这两个目录在容器内挂载?
解决方法
尝试使用 docker-compose down -v
删除在 docker-compose.yml 中声明的所有容器和卷
https://docs.docker.com/compose/reference/down/
-v,--volumes 删除 volumes
中声明的命名卷
Compose 文件和匿名卷的部分
附加到容器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。