在CentOS VMWare Player中运行Docker-网络主机与网桥

时间:2019-06-28 16:56:41

标签: docker networking vmware docker-networking docker-network

我注意到我的Docker设置出现了一个奇怪的问题。以下是细分:

我的设置:

  • 我有一台裸机Windows 10计算机,可以在其项目上运行各种VM
  • 在其中一个VM(CentOS 7)中,我已经安装了docker:
$ docker version
Client:
 Version:           18.09.7
 API version:       1.39
 Go version:        go1.10.8
 Git commit:        2d0083d
 Built:             Thu Jun 27 17:56:06 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.7
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.8
  Git commit:       2d0083d
  Built:            Thu Jun 27 17:26:28 2019
  OS/Arch:          linux/amd64
  Experimental:     false
  • 我不直接在Windows 10金属机中直接运行docker的原因是,它实际上导致我的VMWare Player不再工作。因此,我只是在CentOS VM中运行它。到目前为止,我还没有任何问题。

我的问题:

  • 当我以正常桥接模式运行docker时,一切正常:
  • docker run -p 8080:8080 tomcat
  • 运行该程序时,我可以通过Windows 10主机(实际计算机)在http://localhost:8080(在CentOS VM上)或http://192.168.x.y:8080上访问tomcat
  • 但是,当我以网络主机模式运行docker时,它不起作用
  • docker run --network host tomcat
  • 当我这样运行docker时,我仍然可以在VM上的http://localhost:8080上访问tomcat,但是在Windows 10计算机上,我没有任何响应。

我的困惑

  • 我知道Docker在我的VM中工作
  • 我知道它正在建立桥接网络
  • 我知道我的Windows 10可以与我的VMWare CentOS对话-如果不能,则桥接模式也将不起作用
  • 当我在CentOS中并且只是浏览到http://localhost:8080
  • 时,网络主机模式可以工作
  • 但是,我的期望是我的Windows 10真实计算机应该能够访问我的http://192.168.x.y:8080。实际上,当我以8080:8080作为egress:ingress端口的桥接模式运行docker时,确实如此。

所以我不知道这是错误还是主机模式的功能。

0 个答案:

没有答案