部署环境:利用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地址+端口号测试端口映射是否映射成功。