Docker 容器内操作宿主机

容器内部运行宿主机的docker命令

实现这种需求,其实非常简单,你只需要将docker宿主机的docker文件和docker.sock文件挂载到容器中即可,具体为:

-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/bin/docker:/usr/bin/docker

你要先找到你宿主机的docker和docker.sock位置,别挂载错了,标准的Linux正常来说就是上面的位置。

你在启动docker容器的时候,将上述两个文件正常挂载后,就可以在docker中执行诸如 docker images 等等这样的命令了。

如果出现问题 permission denied

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

…………………………………………………………

dial unix /var/run/docker.sock: connect: permission denied

解决方法

在容器所在的宿主机上直接给 docker.sock 777权限,命令 chmod 777 docker.sock

容器内部中操作宿主机上的网络

-v /proc:/hostip/:ro

在docker run 的时候添加以上挂载 容器启动后

nsenter --mount=/hostip/1/ns/mnt --net=/hostip/1/ns/net ip a

就可以看到宿主机的IP信息了其它网络信息也可以!

容器内部执行宿主机的shell命令

-v /proc:/host/proc

docker里面执行:

nsenter --mount=/host/proc/1/ns/mnt sh -c “ls /root”

就可以看到宿主机的信息了,愉快的开始shell命令,除了有点不太方便

容器内存不足借用宿主机的内存

创建的Docker容器磁盘空间不够怎么办?挂载宿主机的目录到容器就可轻松解决!

-v /data1/test/:/data/
  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值