关于docker 和linux那些不得不说的故事

宿主机:Centos7.6
docker:centos7.6
事情是这样的:
宿主机的/data/a 目录 挂载到了 docker 的 /www 目录 
现在 我将 宿主机 /data/b 目录 挂载到了 /data/a 目录   
此时我的宿主机 就有了 /data/a/b ->/data/b  这样一个软连接  正常访问
此时我在docker 里面访问 :/www 目录 里面没有 b 目录

我想问怎么才能实现,或者能不能实现这个方式(ps: 不能采用把b目录挂载到docker  因为有很多目录 都需要软连接)
回复列表(6|隐藏机器人聊天)
  • @Ta / 2022-08-17 / /
    总结,楼主想要在docker里面挂载宿主机里面的一个文件夹,应该怎么实现。请楼下回答
  • @Ta / 2022-08-17 / /
    我不会6708f5a97fc9c6.jpg(2.14 KB)
  • @Ta / 2022-08-17 / /

    @川南吴彦祖,用mount --bind/data/a转移到另一个挂载点就可以了。

    mkdir -p /data/www
    mount --bind /data/a /data/www
    

    然后把宿主机的/data/www目录挂载到docker/www目录,这样你再往/data/a进行任何挂载操作都不会影响到/data/www

    /etc/fstab中的mount --bind写法(可开机自动挂载):

    /data/a  /data/www  none  bind  0  0
    
  • @Ta / 2022-08-17 / /

    上一个回答可能没有正确理解问题,现在重新回答:

    @川南吴彦祖,使用mount --bind组织文件夹,避免符号连接在容器内不可触及的缺点。

    rm /data/a/b
    mkdir -p /data/a/b
    mount --bind /data/b /data/a/b
    

    现在,容器内的/www/b将可用,而且是“普通文件夹”,不是符号连接。

    /etc/fstab中的mount --bind写法(可开机自动挂载):

    /data/b  /data/a/b  none  bind  0  0
    
  • @Ta / 2022-08-17 / /
    @老虎会游泳,非常感谢
  • @Ta / 2022-08-18 / /

    用-v映射不就好了

    荣耀30Pro

添加新回复
回复需要登录