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

发布时间:2021-09-23

  怎么实现docker容器之间互联?在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的,要让外部访问这些应用时,可以通过-P和-p参数来指定端口映射。

  当使用-P(大写的)标记时,docker会随机映射一个49000~49900的端口到内部容器开放的网络端口,-p(小p)可以指定到要映射的端口。

  一、随机映射:端口不会冲突。-P(大P)

  映射关系如下:把docker的80端口,映射到了主机的32768端口。

  二、指定端口:

  1、HostPort:ContainerPort

  HostPort是本地的端口,ContainerPort是容器里的端口。

  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)

  映射关系如下:把docker的80端口,映射到了主机的32768端口。

  2、指定端口:91是主机的端口,80是容器里的端口。

  [;tcy]#dockerrun-d-p92:80--namemynginx2nginx f1a2dc37908b7e612df81301b068d2ee88bb49f79dd23eab12eb02172e5d7fe1 [;tcy]#dockerps-l CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f1a2dc37908bnginxnginx-gdaemonofAboutaminuteagoUpAboutaminute0.0.0.0:92->80/tcpmynginx2

注册即送1000元现金券