问题描述

  1. IP地址是 http://192.168.81.143 的主机上安装了CentOS8。
  2. CentOS8里面安装了Docker,并使用docker run命令从tomcat镜像创建新容器并映射端口:
    docker run --name=firsttom -it -p 8888:8080 tomcat
  3. 按道理,在主机使用 http://http://192.168.81.143:8888 应该能够访问firsttom容器的tomcat才对,然而却无法访问。

解决过程

  1. 首先想到的就是防火墙问题。于是我在主机上关闭了防火墙:
    systemctl stop firewalld

    别说,这样一来firsttom容器的tomcat还真可以访问了。

  2. 我不想关闭防火墙,所以就想到把8888端口在防火墙里面放行:
    firewall-cmd --zone=public --add-port=8066/tcp --permanent
    firewall-cmd --reload

    按道理这样就应该能访问了,然而防火墙打开后,发现仍然无法访问。

  3. 于是乎就开始了各种搜索,排除了各种不靠谱方案后,终于找到解决方法:
    # 把docker0网卡添加到trusted域
    firewall-cmd --permanent --zone=trusted --change-interface=docker0
    # 重启加载配置
    firewall-cmd --reload

注:这个方法对CentOS7也有效

发表评论

电子邮件地址不会被公开。 必填项已用*标注