Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 如何使容器对外部网络可见,并在生产中处理I.P地址_Docker - Fatal编程技术网

Docker 如何使容器对外部网络可见,并在生产中处理I.P地址

Docker 如何使容器对外部网络可见,并在生产中处理I.P地址,docker,Docker,我有: 使用Hyper-V的裸机上的Windows服务器 运行在Hyper-V中的Ubuntu服务器 一个Docker容器,包含运行在Ubuntu服务器上的NGINX web应用程序 每次我运行Docker映像时,它都会在Docker0网络接口上获得一个新的I.p.地址。对于生产,我不知道如何使Docker容器对外部网络可见。我也不知道如何处理这样一个事实:每次运行映像时,I.P地址都会更改 正确的方法是什么: 使Docker容器对外部网络可见 在生产中以可重复的方式处理Docker容器I

我有:

  • 使用Hyper-V的裸机上的Windows服务器
  • 运行在Hyper-V中的Ubuntu服务器
  • 一个Docker容器,包含运行在Ubuntu服务器上的NGINX web应用程序
每次我运行Docker映像时,它都会在Docker0网络接口上获得一个新的I.p.地址。对于生产,我不知道如何使Docker容器对外部网络可见。我也不知道如何处理这样一个事实:每次运行映像时,I.P地址都会更改

正确的方法是什么:

  • 使Docker容器对外部网络可见
  • 在生产中以可重复的方式处理Docker容器IP地址

使用
Docker run
运行Docker容器时,应使用
-p
开关来转发端口,例如:

docker run -p 80:80 nginx
这将把端口80从Ubuntu服务器路由到Nginx容器内的端口80

您应该在上查看Docker文档


当您有多个容器和链接时,您应该在Dockerfile中使用
EXPOSE
,如下所述:。

太简单了!非常感谢。