怎么实现docker容器之间互联?在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的,要让外部访问这些应用时,可以通过-P和-p参数来指定端口映射。
当使用-P(大写的)标记时,docker会随机映射一个49000~49900的端口到内部容器开放的网络端口,-p(小p)可以指定到要映射的端口。
一、随机映射:端口不会冲突。-P(大P)
[root@tcy1 tcy]# docker run -P -d --name mynginx1 nginx 72decf04199f8ca77d0c59351cc04a360c125b1bd5a949a31c572bda8ca0486a
映射关系如下:把docker的80端口,映射到了主机的32768端口。
[root@tcy1 tcy]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 72decf04199f nginx "nginx -g 'daemon of 12 seconds ago Up 7 seconds 0.0.0.0:32768->80/tcp mynginx1
二、指定端口:
1、HostPort:ContainerPort
HostPort是本地的端口,ContainerPort是容器里的端口。
[root@tcy1 tcy]# docker run -d -p 92:80 --name mynginx2 nginx f1a2dc37908b7e612df81301b068d2ee88bb49f79dd23eab12eb02172e5d7fe1
[root@tcy1 tcy]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f1a2dc37908b nginx "nginx -g 'daemon of About a minute ago Up About a minute 0.0.0.0:92->80/tcp mynginx2
2、IP:HostPort:ContainerPort,映射到指定地址的指定端口
docker run -d -p 127.0.0.1:92:80 --name mynginx2 nginx
3、IP::ContainerPort,映射到指定地址的任意端口
docker run -d -p 127.0.0.1::80 --name mynginx2 nginx
三、容器互联
容器互联是一种让多个容器中应用进行快速交互的方式。它会在源和接受容器之间创建连接关系,接受容器可以通过容器名快速访问到源容器,而不用指定具体的IP地址。连接系统依据容器的名称来执行。
1、随机映射:端口不会冲突。-P(大P)
[root@tcy1 tcy]# docker run -P -d --name mynginx1 nginx 72decf04199f8ca77d0c59351cc04a360c125b1bd5a949a31c572bda8ca0486a
映射关系如下:把docker的80端口,映射到了主机的32768端口。
[root@tcy1 tcy]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 72decf04199f nginx "nginx -g 'daemon of 12 seconds ago Up 7 seconds 0.0.0.0:32768->80/tcp mynginx1
2、指定端口:91是主机的端口,80是容器里的端口。
[root@tcy1 tcy]# docker run -d -p 92:80 --name mynginx2 nginx f1a2dc37908b7e612df81301b068d2ee88bb49f79dd23eab12eb02172e5d7fe1 [root@tcy1 tcy]# docker ps -l CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f1a2dc37908b nginx "nginx -g 'daemon of About a minute ago Up About a minute 0.0.0.0:92->80/tcp mynginx2
作者:CSDN博主「田园园野」
原文链接:
融亿云的容器云产品是通过docker技术,在云计算集群服务器上部署容器云服务实现,功能强大、简单易用,可作集群服务,自由轻松搭建私有网络,轻松组建服务集群。
高可用的的容器云