Docker 映射容器目录启动,空目录无数据 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kkxxxxxxx
V2EX    Docker

Docker 映射容器目录启动,空目录无数据

  •  1
     
  •   kkxxxxxxx 2017-03-29 14:03:13 +08:00 11923 次点击
    这是一个创建于 3118 天前的主题,其中的信息可能已经有所发展或是发生改变。

    docker run -d -p 80:80 --name=website apache:latest sh 直接运行后,可以正常访问到容器 website /web/html 下的示例页面

    docker run -d -p 80:80 -v /home/data:/web/html --name=website apache:latest sh 映射宿主目录 /data 到容器 website 的 /web/html 目录, 启动后 /data 和 /web/html 目录下都没有数据,空目录

    环境 CentOS7 、 root 身份创建的容器,也没报错,有朋友知道这是什么情况吗

    13 条回复    2017-03-30 15:46:53 +08:00
    Sharuru
        1
    Sharuru  
       2017-03-29 14:16:57 +08:00
    host 的目录权限也会影响到 container 内的读取,请确认。
    aogg
        2
    aogg  
       2017-03-29 14:30:42 +08:00
    目录后面要加 /
    cloverstd
        3
    cloverstd  
       2017-03-29 15:05:47 +08:00
    host 的目录挂载进去,容器里的目录会被 host 的目录里的内容覆盖掉
    host 的目录如果不存在, docker 会创建一个 host 目录,再挂载到容器里
    Bardon
        4
    Bardon  
       2017-03-29 17:08:07 +08:00
    因为你 /web/html 示例页面被 host 目录 /home/data 覆盖了呀...
    你需要在你 host 目录 /home/data 创建示例页面,同时 uid gid 要重设为 /web/html 的权限
    kkxxxxxxx
        5
    kkxxxxxxx  
    OP
       2017-03-29 17:39:19 +08:00
    @Sharuru /home/data 目录权限 755,容器有自动创建宿主目录,改成 777 也没效果
    @aogg 可以不加 /
    @cloverstd 宿主目录 /home/data 由容器创建

    不映射目录的情况下测试发现:
    docker run -d --name=website apache:latest 正常访问容器 /web/html 示例页面
    docker run -d --name=website apache:latest sh 启动后容器 /web/html 目录为空
    kkxxxxxxx
        6
    kkxxxxxxx  
    OP
       2017-03-29 17:47:35 +08:00
    @Bardon docker exec -t -i website sh 进去
    ls: can't open '/web': Permission denied
    cxbig
        7
    cxbig  
       2017-03-29 17:52:05 +08:00
    @kkxxxxxxx 你还是没有说清楚,你的 Host 机目录 /home/data 是否为空目录
    如果 /home/data 是空的,那么挂载进去 /web/html 亦为空
    如果 /home/data 有内容,挂载后 /web/html 还是空的,需要检查别的因素
    从外向内 volume 挂载,内部原有内容将被覆盖,而不是内外同步
    猜测你是想通过挂载,让内部 /web/html 原有内容出现在 Host 机 /home/data 里
    kkxxxxxxx
        8
    kkxxxxxxx  
    OP
       2017-03-29 17:58:19 +08:00
    @cxbig 宿主机 /home 下原来没有 data 目录, data 目录为容器映射时自动创建的,应该不存在内容被覆盖的问题, /home 目录权限 755
    cxbig
        9
    cxbig  
       2017-03-29 18:13:36 +08:00
    @kkxxxxxxx 如果是这样,内外都是空的是正常情况
    试着在 /home/data 创建个文件,再进去 container 看他们在不在 /web/html 里
    kkxxxxxxx
        10
    kkxxxxxxx  
    OP
       2017-03-29 18:21:08 +08:00
    @cxbig container /web 提示无权限操作
    ls: can't open'/web': Permission denied
    这个权限是指哪的权限?
    host /home/data 755
    container /web 755
    cxbig
        11
    cxbig  
       2017-03-29 18:31:02 +08:00
    @kkxxxxxxx 那是内部权限,这个错误有点奇怪, container 里一般是 root 用户的,不应该有 Permission 这种问题
    尝试在 docker run 命令里加一个参数 -w /web/html
    kkxxxxxxx
        12
    kkxxxxxxx  
    OP
       2017-03-29 23:02:30 +08:00
    @cxbig -w 后容器一启动就关闭,好郁闷,同样的命令在另外几台 Docker 上都正常,反倒是这台新装的 CentOS7 这么奇怪,是不是少装了什么东西
    kkxxxxxxx
        13
    kkxxxxxxx  
    OP
       2017-03-30 15:46:53 +08:00
    @Sharuru @aogg @cloverstd @Bardon @cxbig
    感谢大家提供线索,原来是 selinux 的锅,已解决
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2195 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 00:53 PVG 08:53 LAX 17:53 JFK 20:53
    Do have faith in what you're doing.
    ubao 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