不懂就问~Docker 无法挂载/etc/nginx 目录 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
noahsophie
V2EX    Docker

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

  •  
  •   noahsophie 2019-07-19 12:04:43 +08:00 7995 次点击
    这是一个创建于 2350 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    那么结果就是要么宿主挂载目录下没有这个文件,要么是宿主目录下存在这个文件,但是容器内的 nginx 没有权限读取。
    noahsophie
        5
    noahsophie  
    OP
       2019-07-19 13:39:12 +08:00
    @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
    VD
        6
    VD  
       2019-07-19 13:46:53 +08:00
    @noahsophie 因为 mysql 容器启动,没有库的情况下,默认新建一个库,所以最后 mysql 就跑起来了

    nginx 因为没有找到 nginx.conf,所以终止了,容器也就启动失败了 。
    VD
        7
    VD  
       2019-07-19 13:48:11 +08:00
    挂载是这样的

    /host/path:/container/path

    讲宿主机的目录或文件,挂载到容器中
    noahsophie
        8
    noahsophie  
    OP
       2019-07-19 13:52:59 +08:00
    @VD 知道了~ 那么我上面第二种不指定目录方式绑定成功,是 docker 帮我把容器的文件复制到宿主机目录下了吗
    VD
        9
    VD  
       2019-07-19 14:20:13 +08:00
    noahsophie
        10
    noahsophie  
    OP
       2019-07-19 17:40:51 +08:00
    @VD 理解了~
    第一种方式 Type:bind
    第二种方式 Type:volume
    参考连接: https://docs.docker.com/storage/bind-mounts/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     925 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 20:58 PVG 04:58 LAX 12:58 JFK 15:58
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86