docker端口映射

docker端口映射

   张吉吉     2020年1月9日 06:26     408

1、简介

当启动容器之后,如果不进行设置的话,外部的客户端是无法访问容器内部的服务的。所以需要使用特殊的参数,将外部的端口映射到容器内部端口。其实也很简单,就是-p和-P两个参数。

下边是没有进行映射的端口,只能看到容器内部启动了一个80端口。

1.png

 

2、映射端口

(1)随机映射端口

随机映射端口只需要添加一个-P的参数就可以了。

如同下边的命令

docker run --rm -itd --name newweb -P -v /www/html:/usr/share/nginx/html nginx

使用docker ps –a查看容器

2.png

可以看到一个端口32768映射到了容器内部的80端口。

直接访问可以访问到容器内部的页面。

或者使用命令docker port <container name>

3.png

 

(2)映射所有地址指定的端口

如果想要指定外部的端口映射到内部指定的80端口可以使用-p参数

docker run --rm -itd --name new3web -p 10000:80 -v /www/html:/usr/share/nginx/html nginx

使用docker ps –a查看容器

 

4.png

以上指定将10000端口映射到了容器内部的80端口。

访问10000端口就能访问到容器的页面了。

或者使用命令docker port <container name>

5.png

 

(3)映射指定地址的任意端口

如果服务器有多块网卡,并且有多个ip地址。要如何映射呢?

直接使用ip::port就可以了。

docker run --rm -itd --name new3web -p 192.168.0.226::80 -v /www/html:/usr/share/nginx/html nginx

只要指定好物理服务器的ip和映射的容器端口。

 

(4)映射指定地址的指定端口

直接使用ip:port_out:port_in就可以了。

docker run --rm -itd --name new3web -p 192.168.0.226:10000:80 -v /www/html:/usr/share/nginx/html nginx

指定好物理服务器的ip和端口来映射的容器端口。

 


其他文章