运行命令如下:
如下直接指定了network 是host
docker run --name centosAgentClient --network host --privileged=true -v E:/xx:/xx -it centos:latest /bin/bash
端口暴露出来这个我会,现在跑的这种,没理解host为什么不行
inspect可以看到是host
运行命令如下:
如下直接指定了network 是host
docker run --name centosAgentClient --network host --privileged=true -v E:/xx:/xx -it centos:latest /bin/bash
端口暴露出来这个我会,现在跑的这种,没理解host为什么不行
inspect可以看到是host
那就把你的容器内的端口发布出来,也就是 docker run -p 8080:8080 xxx
.
--publish , -p Publish a container’s port(s) to the host
注意到你这里-v 挂载的是windows的磁盘路径,所以你用的应该是windows系统上的docker。
通常情况下,如果你是在linux下,使用--host这么用是没问题,在容器内监听端口,在本机就能访问。
但是windows上的docker,是运行在一个虚拟机里面的,虚拟机的host并不是windwos的host,所以他们并不能互通。大概就是这样。
如果你用wsl的话,可以考虑直接在wsl上安装docker,我感觉体验也还可以。
因为 docker 只支持 linux ,不支持 mac 和 win
mac 和 win 的 docker 都是跑在虚拟机里面
你的 host 指是你的虚拟机,而不是宿主机
2 回答2.5k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1.1k 阅读✓ 已解决
2 回答1.7k 阅读
不支持 Docker Desktop for Windows
The host networking driver only works on Linux hosts, and is not supported on Docker Desktop for Mac, Docker Desktop for Windows, or Docker EE for Windows Server.
https://docs.docker.com/network/drivers/host/