Docker创建的容器无法远程访问!!!

  • 本问题针对华为云服务器
  • 一、在服务器上安装好docker并启动服务:
  • 二、获取所需镜像并创建自己的容器:
  • 三、接下来就是遇到的问题!!!
  • 13443和18834的服务均无法访问。
  • 也不是docker容器内部不能与服务器本地通信的问题。
  • 最后发现还是防火墙策略问题,不过问题的解决需要登录云控制台,更改安群组!!!
  • 四、解决问题
  • 这里需要注意的是选择与自己服务器已选择的安全组对应的安全组去配置规则!!
  • 我们再次远程访问:
  • 问题解决了 !!!
  • 希望这篇文章对你有帮助,欢迎点赞关注+收藏!
  • 评论区等你互动!!!


本问题针对华为云服务器

  • 问题描述:
    自己想着在自己的公网服务器上部署awvs、nessus扫描器,供自己平时学习使用。下面是自己的部署过程及部署后遇到不能远程访问的问题。

一、在服务器上安装好docker并启动服务:

8 docker mysql 远程登录失败 docker远程连接不上_容器

二、获取所需镜像并创建自己的容器:

获取镜像:

8 docker mysql 远程登录失败 docker远程连接不上_远程访问_02


获取成功,查询镜像文件:

8 docker mysql 远程登录失败 docker远程连接不上_运维_03


docker run创建容器(具体参数可以去学习了解一些docker命令。推荐书籍《第一本docker书》)

8 docker mysql 远程登录失败 docker远程连接不上_运维_04


把容器的8834端口映射到服务器本地的18834,同理3443映射到13443端口。

接着创建成功,查看容器运行是否成功:

8 docker mysql 远程登录失败 docker远程连接不上_容器_05


容器成功创建并正常运行,端口也映射成功。

查看服务器本地端口打开与否:

8 docker mysql 远程登录失败 docker远程连接不上_运维_06


18834和13443端口已打开。

三、接下来就是遇到的问题!!!

按逻辑情况,我们只需要https://公网IP:18834、https://公网IP:13443就能访问到相应服务!!!

8 docker mysql 远程登录失败 docker远程连接不上_远程访问_07

13443和18834的服务均无法访问。

查了很多资料,并未解决。

  • 服务器本地防火墙

    服务器的防火墙也未开启,所以添不添加端口策略也无所谓。

也不是docker容器内部不能与服务器本地通信的问题。

进去容器内部查ip

8 docker mysql 远程登录失败 docker远程连接不上_远程访问_08


退出容器,在服务器本地ping容器地址,测试网络连通性(虽然是多此一举,锻炼自己排查问题能力):

8 docker mysql 远程登录失败 docker远程连接不上_docker_09

最后发现还是防火墙策略问题,不过问题的解决需要登录云控制台,更改安群组!!!

四、解决问题

  • 登录华为云控制台,找到自己的ECS资源:

    在“更多”选项里找到“更改安全组”:


    选择“新建安全组”:

这里需要注意的是选择与自己服务器已选择的安全组对应的安全组去配置规则!!

添加两条策略,放通18834和13443端口:

8 docker mysql 远程登录失败 docker远程连接不上_运维_10


8 docker mysql 远程登录失败 docker远程连接不上_运维_11


这里大家可以根据自己的需求,设置策略优先级情况!!!

我们再次远程访问:

8 docker mysql 远程登录失败 docker远程连接不上_容器_12


8 docker mysql 远程登录失败 docker远程连接不上_容器_13