ubuntu - 启用了始终重启选项的 Docker 卷

标签 ubuntu docker docker-compose mounted-volumes

我在配置我的 docker-compose 文件时遇到问题,docker 可以在重新启动时重新启动容器(我的操作系统是 Ubuntu 16.04)。问题不在于我通过 restart: always进入它,但是当我的容器需要一些基于卷的文件时(例如 ssl-cert 进入 nginx)。我的代码(在 docker-compose.yml 中):

php:
    entrypoint: ["wait-for-it", "dockerhost:3306", "-t", "0", "--", "/install.sh"]
    environment:
      - ENVIRONMENT=prod
    volumes:
      - ${FILE}:/file
      - /code
    env_file:
      - prod.env
    restart: always

当我自己启动时,一切都很好。然后我正在检查它是否会在重新启动后工作。但是,不,它不起作用,docker-compose ps给出:
Name                    Command                State      Ports   
-----------------------------------------------------------------------          
panel_php_1        wait-for-it dockerhost:330 ...   Exit 127 

通过执行docker inspect panel_php_1它回显错误:
"Error": "oci runtime error: container_linux.go:247: starting container process caused \"process_linux.go:359: container init caused \\\"rootfs_linux.go:54: mounting \\\\\\\"/home/mblocinski/hehe.txt\\\\\\\" to rootfs \\\\\\\"/var/lib/docker/aufs/mnt/d746adf311098a9e2ffc27d9447a3e448ecfb9081ff4757704c24ec51ef9053e\\\\\\\" at \\\\\\\"/var/lib/docker/aufs/mnt/d746adf311098a9e2ffc27d9447a3e448ecfb9081ff4757704c24ec51ef9053e/file\\\\\\\" caused \\\\\\\"not a directory\\\\\\\"\\\"\"\n: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type"

和坐骑:
"Mounts": [
            {
                "Type": "bind",
                "Source": "/home/mblocinski/hehe.txt",
                "Destination": "/file",
                "Mode": "rw",
                "RW": true,
                "Propagation": ""
            }
]

我确定 hehe.txt 文件是一个文件,而不是目录。如果我说将卷安装到作为目录的容器中效果很好,也许会有所帮助。请帮忙,已经搜索了整个互联网,但没有任何效果。谢谢

最佳答案

检查/home 是否被 encfs 加密。默认情况下,Ubuntu 在安装期间配置此功能。

运行这个命令:mount|grep home并检查输出是否有 type encfs或类似的东西。

关于ubuntu - 启用了始终重启选项的 Docker 卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42955957/

相关文章:

docker - 将extra_hosts添加到docker文件

multithreading - Ubuntu 14.04 中 Code::Blocks 上的 C++11

macos - Docker 容器内构建的 Golang 二进制文件,还是 Mach-O 可执行文件格式?

ubuntu - ubuntu 上安装 nginx

docker - 在 Docker 内运行的 Nginx 状态端点

docker - 从图层构建Docker镜像

php - 如何在 php 版本 8 中使用 docker-compose up official wordpress latest image?

docker - 如何在Windows Container中获取Docker IP?

ubuntu - Sidekiq 服务未启动

bash - 如何使用通配符将一个目录的所有内容移动到新目录?