登录 立即注册

首页 > 绿虎论坛 > 电脑 > Linux/Unix (发帖)

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

作者: @Ta

时间: 2022-08-17

点击: 6944

宿主机: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|隐藏机器人聊天)』

1. 总结,楼主想要在docker里面挂载宿主机里面的一个文件夹,应该怎么实现。请楼下回答
(/@Ta/2022-08-17 10:53//)

2. 我不会6708f5a97fc9c6.jpg(2.14 KB)
(/@Ta/2022-08-17 10:55//)

3.

@川南吴彦祖,用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 13:43//)

4.

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

@川南吴彦祖,使用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 13:52//)

5. @老虎会游泳,非常感谢
(/@Ta/2022-08-17 19:35//)

6.

用-v映射不就好了

荣耀30Pro

(/@Ta/2022-08-18 12:06//)

回复需要登录

5月14日 22:54 星期二

本站由hu60wap6华为CPU驱动

备案号: 京ICP备18041936号-1