微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在文件中删除卷引用后,停止 docker compose 卷安装在容器中

如何解决在文件中删除卷引用后,停止 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文件夹与主机共享。然后我决定与主机共享整个公共目录。

共享成功,除了 dbsettings 文件夹仍然与整个公共目录一起共享。

在容器内运行 mount 命令显示以下内容

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 举报,一经查实,本站将立刻删除。