网络访问和端口映射

本机的容器地址如下 docker0:172.17.0.1 jumpserver:172.17.0.2 nginx:172.17.0.3

#解释:::格式位置
宿主机IP地址:宿主机端口:容器端口:协议(宿主和容器)

指定映射

docker 会自动添加一条iptables规则来实现端口映射 在这里插入图片描述

-p hostPort:containerPort(宿主机端口:容器端口)

任意宿主机的IP地址访问80端口都可以访问到容器的80端口业务 在这里插入图片描述

-p ip:hostPort:containerPort 多个容器都想使用80端口(宿主机的多个IP地址使用80端口访问业务)

我直接设置添加一个子网卡IP地址,如图所示:

ifconfig ens32:1 192.168.111.11/24 up 

在这里插入图片描述

同端口不通IP地址创建两个容器 在这里插入图片描述

查看端口状态存在10和11的80端口 在这里插入图片描述

区分不通业务,进入容器修改html文件 在这里插入图片描述

浏览器访问10和11地址的页面展示效果区分 在这里插入图片描述

-p ip::containerPort(随机端口)

创建容器生成随机端口49153和49153,IP是宿主机的地址 在这里插入图片描述

访问网址http://192.168.111.10:49154/正常 在这里插入图片描述

查询随机端口得使用范围:因为系统内核定义的随机端口是32768-60999。所以端口是49154

sysctl -a |grep ipv4|grep rang

在这里插入图片描述

-p hostPort:containerPort:udp

默认都是tcp协议,可以指定其他协议 宿主机的端口和协议udp映射到容器的端口的udp协议

-p 192.168.111.10::53:udp

使用宿主机得192.168.111.10这个ip地址的随机端口的udp协议映射到容器的53端口的协议udp

-p 81:80 –p 443:443 可以指定多个-p

随机映射 docker run -P (随机端口)

docker run -d -P nginx:latest

查看随机端口49153 在这里插入图片描述