首页 > 其他分享 >Docker 端口映射防火墙规则配置

Docker 端口映射防火墙规则配置

时间:2024-05-07 11:11:54浏览次数:26  
标签:docker -- cmd 防火墙 firewall USER Docker DOCKER 端口映射

背景

当 docker 使用端口映射时, docker daemon 会创建 DOCKER 链绕过 firewalld 建立 iptables 规则,可能使 firewall 规则失效。

可以通过修改 DOCKER-USER 链来管理 docker 的防火墙规则或禁用 firewalld 直接配置 iptables(不推荐)

1. 停止 docker

不要在 Docker 运行时 Reload firewalld,否则会导致 Docker 链被删除

systemctl stop docker

2. 清除并重建自定义规则链

firewall-cmd --permanent --direct --remove-chain ipv4 filter DOCKER-USER
firewall-cmd --permanent --direct --remove-rules ipv4 filter DOCKER-USER
firewall-cmd --permanent --direct --add-chain ipv4 filter DOCKER-USER

3. 允许 Docker 容器出站流量返回

使用 conntrack 模块匹配 RELATED, ESTABLISHED 两种状态的连接

# 允许出站流量返回,因为建立连接 ESTABLISHED 的数据包已经通过了防火墙的出站规则。
# 此规则优先级为 1
# 没有完全理解这个逻辑,但是加了这条容器内就可以联网了
firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 1 \
  -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT \
  -m comment --comment 'Allow containers to connect to the outside world'

4. 配置白名单

# 允许来自 IP 段的所有流量
firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 1 \
  -s 10.60.22.0/24 -j ACCEPT \
  -m comment --comment 'Allow IP 10.60.22.0/24 to access'

5. 配置默认阻止

# 阻止其他的流量
firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 10 \
  -j REJECT -m comment --comment 'reject all other traffic to DOCKER-USER'

6. Reload 防火墙

firewall-cmd --reload
firewall-cmd --get-active-zones

7. 重启 docker

systemctl start docker

标签:docker,--,cmd,防火墙,firewall,USER,Docker,DOCKER,端口映射
From: https://www.cnblogs.com/sangria/p/18176892

相关文章

  • Docker安装Jenkins
      机器上要有jdk,服务器可以执行如下命令安装   yuminstall-yjava-1.8.0-openjdk.x86_64   jenkins开始    dockersearchjenkins  dockerpulljenkins/jenkins:2.414.2  dockerrun-d-uroot-p8080:8080-p50000:50000-v/var/jenkin......
  • 【Liunx】Docker安装
    Docker安装1、RockyLinux下载RockyLinux安装Docker引擎|Docker文档阿里云开源镜像1.1、设置存储库安装软件包(提供实用程序)并设置存储库。yum-utilsyum-config-managersudoyuminstall-yyum-utilssudoyum-config-manager--add-repohttps://download.docker.c......
  • docker-compose+nginx实现服务不中断更新
    思路是写一个脚本,docker-composescale扩容,然后重写nginx配置文件,刷新负载均衡nginx重写的配置文件,文件名service,里面只有upstream,例如:upstreame-chatbot-server-dev{server0.0.0.0:8080;server0.0.0.0:8081;}脚本使用方法:./rollupdate.sh--service=test-serve......
  • docker pytorch离线安装
    先在ubuntu18.0464位环境里,有联网情况下操作:安装dockerpytorch镜像:dockerpullpytorch/pytorch:1.13.0-cuda11.6-cudnn8-runtime下载依赖:bonelee@ubuntu:~/Desktop/pythonProject$sudodockerps-aCONTAINERIDIMAGE......
  • Docker-DevOps-入门手册(全)
    DockerDevOps入门手册(全)原文:zh.annas-archive.org/md5/A074DB026A63DFD63D361454222593A5译者:飞龙协议:CCBY-NC-SA4.0前言Docker与DevOps概述了容器化的强大力量以及这种创新对开发团队和一般运营的影响。我们还将了解DevOps的真正含义,涉及的原则,以及通过实施Dock......
  • Docker安装mysql
    dockerpullmysql:5.7:从DockerHub上拉取MySQL5.7的镜像。dockerimages:列出所有已下载的镜像,确认MySQL5.7是否已经成功下载。mkdir-p/home/service/mysql/data:创建一个用于存放MySQL数据的目录。mkdir-p/home/service/mysql/conf:创建一个用于存放MySQL配置文件的目录......
  • 记录一下docker踩坑 /dev/shm目录
    /dev/shm是Linux系统中的一个特殊目录,用于作为临时文件存储的一种形式,它将数据存储在RAM(随机存取存储器)中,而不是在磁盘上。这意味着在/dev/shm中存储的数据访问速度非常快,但数据在系统重启后不会被保留。/dev/shm是POSIX共享内存(POSIXSharedMemory)的一部分,它允许不同的进程(程序......
  • docker安装
      uname-r查看系统版本号  yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2   这个命令是用来在基于RPM的Linux发行版上安装一些必要的软件包。具体来说,它安装了以下软件包:yum-utils:这是一个命令行工具集合,提供了许多有用的功能,如清理缓存、......
  • 【转】在 Linux 里布署 Docker
    来自:百度Docker可以布署在Linux系统上,也可以布署在你自己的电脑上。在Linux系统上布署Docker:安装Docker:curl-fsSLhttps://get.docker.com-oget-docker.shsudoshget-docker.sh启动Docker服务:sudosystemctlstartdocker使Docker开机自启:sudosyste......
  • 入门学习Docker部署Vue+NetCore+MsSql
    最近vultr的主机经常忘了续租,导致账号被禁用,主机被删掉每次重新部署都忘了之前怎么弄的,要重新查好多资料每个月6美金的主机XShell连接主机IP先安装docker开启docker服务镜像容器tar文件 saveload dockerimagesdockercommitbuildDockerfilepull仓库 查看......