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 


猜你喜欢

转载自blog.csdn.net/qq_36183935/article/details/80684567