关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

云服务器:怎么实现docker容器之间互联

发布时间:2019-11-06 08:17:34

怎么实现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

/template/Home/Zkeys/PC/Static