首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Docker容器中阻止互联网访问

如何在Docker容器中阻止互联网访问
EN

Stack Overflow用户
提问于 2021-10-12 17:53:50
回答 2查看 98关注 0票数 0

如何将我的Docker网络设置为仅允许内部和主机访问?

我一直在使用用户定义的网络来阻止我的容器访问互联网。

代码语言:javascript
运行
复制
networks:
  no-internet:
    internal: true
    ipam:
      config:
        - subnet: 172.19.0.0/16

这很好用。但是,我希望允许我的容器连接到主机,这样我就可以使用XDebug。如果我使用默认的Docker网络,我可以设置Xdebug通过host.docker.internal连接到主机。将容器添加到no-internet用户定义的网络后,容器将失去对主机的访问权限。

EN

回答 2

Stack Overflow用户

发布于 2021-10-12 19:56:31

我不知道XDebug是什么,所以我可能完全错了;但我的直觉是这是一个简单的例子。

将Xdebug放在no-internet网络上的容器中。

票数 0
EN

Stack Overflow用户

发布于 2021-10-12 19:59:41

在创建用户定义的网络时,请设置com.docker.network.bridge.enable_ip_masquerade=false,而不是设置internal。这将防止NAT伪装来自特定网络的出站流量(这是Docker在使用IPv4时将容器连接到主机网络的方式)。

下面是如何使用docker-cli来做这件事。

代码语言:javascript
运行
复制
docker network create --subnet 172.19.0.0/16 \
   -o com.docker.network.bridge.enable_ip_masquerade=false \
   -o com.docker.network.bridge.name=nointernet \
   nointernet

这是它在Docker Compose中的样子

代码语言:javascript
运行
复制
networks:
   front:
     driver: bridge
     driver_opts:
       com.docker.network.bridge.enable_ip_masquerade: 'false'
     ipam:
       driver: default
       config:
       - subnet: 172.19.0.0/16
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69544970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档