部署环境:利用docker容器实现反向代理,
做端口映射之前一定要先检查一下,所需要映射的端口内网是否可以正常访问。只有在内网能正常访问的情况下,才能映射成功(才能测试是否映射成功)
端口映射详细步骤:(修改配置文件,需要暂停所有端口映射服务)
1,在内网看一下所需要映射的端口是否能正常访问。
2,确定docker容器、代理服务器(172.16.1.5)、公网IP地址(x.x.x.x)这三者所需要映射的端口号。
3,在172.16.1.15上打开防火墙页面(172.16.1.254),将公网IP地址所分配端口号映射到代理服务器所分配的端口号。
①,到资源管理-服务-自定义服务中添加需要需要映射的端口。
②,到网络管理-NAT-目的NAT中添加端口映射
4,到代理服务器的cd /etc/nginx/conf.d/
文件夹中修改配置文件x.conf
①,sudo vim x.conf
//编辑配置文件
②,:set number
//显示配置文件的序列号
③,: 9,15 copy 16
//将第9到15行复制到第16行,复制一个Server端,并修改Docker容器所映射的端口号,同时需要代理的IP地址和端口号
④,wq
//保存文件并退出
5,停止容器
①,docker stop container_nginx
//停止container_nginx容器
②,service docker stop
//停止docker服务
6,将代理服务器的端口映射到docker容器中
①,cd /var/lib/docker/containers/cd97..../
//进入配置文件所在目录
②,sudo cp config.v2.json config.v2.json.bak
//备份配置文件
③,sudo cat config.v2.json | jq . > config.v2.json.jq
//修改json文件格式,并重新写入.jq文件中。
④,sudo vim config.v2.json.jq
//在配置文件中添加映射的端口号
⑤,:set number
//显示配置文件的序列号,并找到ExposedPorts
字段,寻找方法为:/ExposedPorts
,在此字段后面添加端口号。
⑥,: 9,15 copy 16
//将第9到15行复制到第16行,复制的具体内容为"81/tcp": {}
需要在复制的内容前面添加一个逗号(,),注意复制后的大括号}
后面没有逗号。
⑦,cp config.v2.json.jq config.v2.json //覆盖以前的配置文件,使修改后的配置文件生效
①,sudo cp hostconfig.json hostconfig.json.bak
//备份配置文件
②,sudo cat hostconfig.json | jq . > hostconfig.json.jq
//修改json文件格式,并重新写入.jq文件中。
③,sudo vim hostconfig.json.jq
//在配置文件中添加映射的端口号
④,:set number
//显示配置文件的序列号,并找到PortBindings
字段,寻找方法为:/PortBindings
,在此字段后面添加端口号。
⑤,: 9,15 copy 16
//将第9到15行复制到第16行,复制的具体内容为"84/tcp": [
{
"HostIp": "",
"HostPort": "84"
}
]
需要在复制的内容前面添加一个逗号(,),注意复制后的中括号]
后面没有逗号。
⑥,cp hostconfig.json.jq hostconfig.json //覆盖以前的配置文件,使修改后的配置文件生效
7,启动docker服务和容器
①,service docker start
//启动docker服务
②,docker start container_nginx
//启动container_nginx容器
8,查看映射是否成功
①,docker ps
//查看容器是否已启动,并查看端口映射是否成功
②,curl http://代理服务器IP+端口号
//查看从代理服务器到容器内部的端口映射是否已映射成功
③,在外部浏览器中用公网IP地址+端口号测试端口映射是否映射成功。