端口映射与容器互联

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

以上是关于端口映射与容器互联的主要内容,如果未能解决你的问题,请参考以下文章

端口映射与容器互联

7.Docker技术入门与实战 --- 端口映射与容器互联

docker——端口映射与容器互联

Docker-端口映射与容器互联

第七章 端口映射与容器互联

Docker端口映射与容器互联