centos docker如何配置防火墻

centos系統中,安全地配置docker與防火墻(firewalld)的協同工作至關重要,這能確保容器間通信以及容器與外部網絡的通信安全。以下步驟詳細介紹如何在centos系統上配置firewalld以支持docker

  1. 安裝firewalld(如果未安裝):

    sudo yum install firewalld firewalld-services
  2. 啟動并啟用firewalld服務:

    sudo systemctl start firewalld sudo systemctl enable firewalld
  3. 允許Docker守護進程訪問: Docker守護進程通常使用unix套接字通信。 通過firewalld的docker服務允許訪問該套接字:

    sudo firewall-cmd --permanent --add-service=docker sudo firewall-cmd --reload
  4. 驗證Docker服務狀態: 確認Docker服務已被firewalld允許:

    sudo firewall-cmd --list-services | grep docker

    若輸出包含docker,則表示已成功配置。

  5. 配置端口轉發(如有需要): 如果你的Docker容器需要外部訪問,則需要配置端口轉發。例如,將主機的80端口轉發到容器的80端口:

    sudo firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=80:toaddr=<container_ip> sudo firewall-cmd --reload

    請將替換為你的容器IP地址。

  6. 自定義Docker容器防火墻規則(高級): 針對特定Docker容器,你可以使用更精細的防火墻規則。例如,允許通過Docker網絡接口docker0的TCP流量到80端口:

    sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -i docker0 -p tcp --dport 80 -j ACCEPT

    重要提示: 為了在重啟后保持這些自定義規則,需要確保它們被保存到firewalld的持久化配置中。 具體方法取決于你的firewalld版本和配置。

請注意,以上步驟可能因CentOS版本和具體需求而略有差異。建議在生產環境應用前,先在測試環境中驗證配置。 此外,如果啟用SElinux,可能還需要調整SELinux策略以確保Docker與firewalld的正常交互。

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享