V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
worker201
V2EX  ›  Docker

docker compose 怎么禁止容器访问宿主所在的局域网?

  •  1
     
  •   worker201 · 60 天前 · 1290 次点击
    这是一个创建于 60 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如宿主机的 IP 是 192.168.1.1
    容器的 IP 是 20.20.20.20
    容器可以直接通过 192.168.1.x:port 的方式
    访问到宿主机局域网中的服务
    怎么禁止这种访问, 同时支持容器访问公网?
    3 条回复    2024-11-23 22:26:53 +08:00
    ferock
        1
    ferock  
       60 天前 via iPhone
    version: "3.9"
    services:
    networks:
    test:
    driver: bridge
    driver_opts:
    com.docker.network.bridge.enable_ip_masquerade: false


    但是互联网也没法访问了…
    momocraft
        2
    momocraft  
       60 天前
    带 cap=NET_ADMIN 运行
    启动时把 private IP range 都 ip route add prohibit 掉
    driller
        3
    driller  
       2 天前
    @ferock 可以用 com.docker.network.bridge.enable_icc: "false"试试,com.docker.network.bridge.enable_ip_masquerade: false 这个好像是用来禁止 nat 的

    @momocraft 安全考虑 cap 能不给就不给吧,我上容器都是一律先 非 root+cap-drop=ALL
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3122 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 14:20 · PVG 22:20 · LAX 06:20 · JFK 09:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.