端口映射与容器互联
Posted tz90
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了端口映射与容器互联相关的知识,希望对你有一定的参考价值。
一、简介
在生产环境中, 经常会碰到需要多个服务组件容器共同协作的情况, 这需要多个容器之间能够互相访问到对方的服务。
所以Docker允许映射容器内应用的服务端口到本地宿主主机;还能通过互联机制实现多个容器间通过容器名快速访问。
二、端口映射实现容器访问
2.1 从外部访问容器应用
默认无法通过网络来访问容器内的应用跟服务,需要通过-p或-P指定映射端口,-P会随机映射一个49000~49900的端口,-p为指定某端口。
[root@localhost dbdata]# docker run -d -P training/webapp python app.py WARNING: IPv4 forwarding is disabled. Networking will not work. 19c841267937f78cdfe7df8a33f8507d4fa367aad8c10086d48a59df23b49e58
可以看到宿主机的32770端口映射成了容器的5000端口
[root@localhost dbdata]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 19c841267937 training/webapp "python app.py" 4 seconds ago Up 3 seconds 0.0.0.0:32770->5000/tcp clever
也可以使用docker logs命令查看应用信息
[root@localhost dbdata]# docker logs -f 19c841267937 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
2.2 映射指定端口
$docker run -d -p 5000:5000 training/webapp python app.py $docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py
3.3 映射到指定地址的指定端口
$docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py
3.4 映射到指定地址的任意端口
$docker run -d -p 127.0.0.1::5000 training/webapp python app.py
$docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
3.5 查看映射的端口配置
[root@localhost dbdata]# docker port 19c841267937 5000 0.0.0.0:32770
以上是关于端口映射与容器互联的主要内容,如果未能解决你的问题,请参考以下文章