如何使一个容器在外部networking中可见,并在生产中处理IP地址
我有:
- 使用Hyper-V的裸机上的Windows服务器
- 运行在Hyper-V中的Ubuntu服务器
- 一个在Ubuntu服务器上运行的NGINX Web应用程序的Docker容器
每次运行Docker映像时,都会在Docker0networking接口上获取新的IP地址。 对于生产,我不知道如何使Docker容器对外部networking可见。 我也不知道如何处理每次图像运行时IP地址都会改变的事实。
什么是正确的方法来:
- 使一个Docker容器对外部networking可见?
- 在生产中以可重复的方式处理Docker容器IP地址?
当您使用docker run
运行Docker容器时,应该使用-p
开关来转发端口,例如:
docker run -p 80:80 nginx
这会将端口80从Ubuntu服务器路由到Nginx容器内的端口80。
您应该在https://docs.docker.com/reference/run/#expose-incoming-ports上查看Docker文档。
当你有多个容器和链接时,你应该在Dockerfile中使用EXPOSE
,如下所示: https ://docs.docker.com/reference/builder/#expose。