Docker 容器内操作宿主机
家电维修 2023-07-16 19:17www.caominkang.com家电维修技术
目录
- 容器内部运行宿主机的docker命令
- 容器内部中操作宿主机上的网络
- 容器内部执行宿主机的shell命令
- 容器内存不足借用宿主机的内存
实现这种需求,其实非常简单,你只需要将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 hile 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 --=/hostip/1/ns/ 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/
上一篇:什么是显卡驱动,显卡驱动怎么安装?
下一篇:重装后电脑没有声音的解决办法