worker201
V2EX  ›  Docker

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

  •  1
     
  •   worker201 · Sep 26, 2024 · 2126 views
    This topic created in 605 days ago, the information mentioned may be changed or developed.
    比如宿主机的 IP 是 192.168.1.1
    容器的 IP 是 20.20.20.20
    容器可以直接通过 192.168.1.x:port 的方式
    访问到宿主机局域网中的服务
    怎么禁止这种访问, 同时支持容器访问公网?
    3 replies    2024-11-23 22:26:53 +08:00
    ferock
        1
    ferock  
    PRO
       Sep 26, 2024 via iPhone
    version: "3.9"
    services:
    networks:
    test:
    driver: bridge
    driver_opts:
    com.docker.network.bridge.enable_ip_masquerade: false


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

    @momocraft 安全考虑 cap 能不给就不给吧,我上容器都是一律先 非 root+cap-drop=ALL
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2117 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 88ms · UTC 00:01 · PVG 08:01 · LAX 17:01 · JFK 20:01
    ♥ Do have faith in what you're doing.