新闻资讯

docker端口映射原理 花生壳端口映射如何设置

2022-07-12

docker端口映射是我们接触网络技术的时候经常接触到词汇,那么docker端口映射是什么意思,如何自动映射端口以及如何绑定端口到指定接口?这些问题都是我们在接触到docker端口映射经常遇到的,今天小编就这些问题和大家讲解一下。

docker端口映射的意义

docker解决了容器的两个问题,并且给容器内部服务的访问提供了一个简单而可靠的方法。docker 通过端口绑定主机系统的接口,允许非本地客户端访问容器内部运行的服务。为了简便的使得容器间通信,docker 提供了这种连接机制。

自动映射端口

-P使用时需要指定--expose选项,指定需要对外提供服务的端口
$ sudo docker run -t -P --expose 22 --name server ubuntu:14.04
使用docker run -P自动绑定所有对外提供服务的容器端口,映射的端口将会从没有使用的端口池中 (49000..49900) 自动选择,你可以通过docker ps、docker inspect 或者docker port 确定具体的绑定信息。

绑定端口到指定接口

基本语法
$ sudo docker run -p [([:[host_port]])|():][/udp]
默认不指定绑定 ip 则监听所有网络接口。
绑定 TCP 端口
Bind TCP port 8080 of the container to TCP port 80 on 127.0.0.1 of the host machine. $ sudo docker run -p 127.0.0.1:80:8080 # Bind TCP port 8080 of the container to a dynamically allocated TCP port on 127.0.0.1 of the host machine. $ sudo docker run -p 127.0.0.1::8080 # Bind TCP port 8080 of the container to TCP port 80 on all available interfaces of the host machine. $ sudo docker run -p 80:8080 # Bind TCP port 8080 of the container to a dynamically allocated TCP port on all available interfaces $ sudo docker run -p 8080
绑定 UDP 端口
Bind UDP port 5353 of the container to UDP port 53 on 127.0.0.1 of the host machine. $ sudo docker run -p 127.0.0.1:53:5353/udp

为什么需要docker端口映射

docker的ip 是基于本地系统的,并且容器的端口非本地主机是访问不到的。此外,除了端口只能本地访问外,对于容器的另外一个问题是这些 ip 在容器每次启动的时候都会改变。基于以上两个问题,所以需要通过端口映射,实现外网的访问已经IP的稳定。
花生壳就是可以把域名和动态IP进行绑定,也就是每次路由器拨号到的动态外部IP地址会自动送到花生壳网站,花生壳网站将这个动态的IP绑定为一个固定的域名。并且对花生壳的设置,可以实现内网穿透,和端口映射,实现外网访问内网的目标。

花生壳端口映射如何设置

(1)在IE输入http://192.168.1.1, 输入用户名和密码,进入设置界面,点击“进阶设定”-“虚拟服务器”
(2)添加一条WEB 服务端口映射,直接在最上方那里设置:
(3)选择激活,名称随便写一个,个人 IP 地址填入你的本机IP,比如你的内网ANYVIEW服务器的IP是192.168.1.2,就填192.168.1.2
(4)协议模式,选择TCP,当然你选择BOTH/ALL也可以,私有服务端口和公有服务端口都填入ANYVIEW端口:11901-11905(共5个端口,也可以写成5行);
含义是:当远程连接访问路由器外部IP地址(比如222.222.222.222)的11901-11905这5个端口时,路由器会自动将对应的请求,通过路由器内网口IP地址192.168.1.1,将请求转发到192.168.1.2
(5)排程,任何时间。
按执行按钮后提示需要重新启动路由器,按重新激活按钮使其生效。
花生壳是一款内网穿透兼动态域名解析软件。可以解决docker端口映射的问题,它能够帮助用户将宽带运营商提供的动态IP进行解析,通过固定域名对家里或公司搭建的服务器进行远程访问和远程管理。可以帮助用户解决各种网络需求,如果用户还在因为端口映射的问题而烦恼,不妨借助花生壳软件来解决网络问题。