首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Docker

不懂就问~Docker 无法挂载/etc/nginx 目录

  •  
  •   noahsophie · 95 天前 · 2872 次点击
    这是一个创建于 95 天前的主题,其中的信息可能已经有所发展或是发生改变。

    docker-compose 配置如下

    version: "3"
    services:
            nginx:
                    image: nginx
                    ports:
                            - "80:80"
                    container_name: nginx
                    restart: always
                    privileged: true
                    volumes:
                            #1 - /data/nginx:/etc/nginx
                            #2 - /etc/nginx
    
    
    

    用第一种方式,会报错 open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)

    用第二种方式就没问题

    不知道为什么第一种方式,容器的文件没有同步到宿主机上,权限都有

    本人刚学 Docker

    第 1 条附言  ·  95 天前
    不知道这个挂载是什么流程。
    是把容器的目录下文件复制到宿主机的目录下?还是什么
    10 回复  |  直到 2019-07-19 17:40:51 +08:00
        1
    noahsophie   95 天前
    目前我是照着这个教程学的:https://yeasy.gitbooks.io/docker_practice/content/
    大佬们要是有好的学习地址,也可以发一下
        2
    kchum   95 天前 via iPhone
    你别挂载先 复制一份 nginx.conf 出来了放在要挂载的目录
        3
    kchum   95 天前 via iPhone
    /etc/nginx/的所有文件复制到 host 要挂载的目录
        4
    gam2046   95 天前
    因为你的宿主环境下 /data/nginx/nginx.conf 文件不存在呀,提示说的很清楚了。容器内这样提示,而容器内这个目录是由宿主 mount 进去的。

    那么结果就是要么宿主挂载目录下没有这个文件,要么是宿主目录下存在这个文件,但是容器内的 nginx 没有权限读取。
        5
    noahsophie   95 天前
    @kchum @gam2046
    我 MYSQL 这样挂载目录,也没事先复制文件到宿主机上啊
    但是查看 /data/insane_mysql 目录,里面文件和容器内的文件一样
    version: "3"
    services:
    db:
    image: mysql:5.7
    container_name: insane_mysql
    restart: always
    ports:
    - "3306:3306"
    environment:
    MYSQL_ROOT_PASSWORD: "123456"
    volumes:
    - /data/insane_mysql:/var/lib/mysql
        6
    VD   95 天前
    @noahsophie 因为 mysql 容器启动,没有库的情况下,默认新建一个库,所以最后 mysql 就跑起来了

    nginx 因为没有找到 nginx.conf,所以终止了,容器也就启动失败了 。
        7
    VD   95 天前
    挂载是这样的

    /host/path:/container/path

    讲宿主机的目录或文件,挂载到容器中
        8
    noahsophie   95 天前
    @VD 知道了~ 那么我上面第二种不指定目录方式绑定成功,是 docker 帮我把容器的文件复制到宿主机目录下了吗
        10
    noahsophie   95 天前
    @VD 理解了~
    第一种方式 Type:bind
    第二种方式 Type:volume
    参考连接: https://docs.docker.com/storage/bind-mounts/
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2573 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 14:12 · PVG 22:12 · LAX 07:12 · JFK 10:12
    ♥ Do have faith in what you're doing.