当我将此行添加到我的/etc/default/docker中时

DOCKER_OPTS="--iptables=false"

那么DNS将不再起作用。由docker启动的一组容器不再能够相互查找:
version: '2'
services:
    elasticsearch:
       image: elasticsearch:latest
       volumes:
          - ./esdata:/usr/share/elasticsearch/data
    kibana:
       image: kibana:latest
       environment:
          - ELASTICSEARCH_URL=http://elasticsearch:9200

当设置了iptables = false时,以上内容将停止工作。 kibana容器无法“找到” elasticsearch容器。但是当删除(并重新启动docker引擎)后,它可以正常工作。

为什么是这样?

(更重要的是,为什么在使用ufw时iptables = false不是默认设置?)

谢谢

最佳答案

https://docs.docker.com/v1.5/articles/networking/#between-containers

https://docs.docker.com/engine/installation/linux/ubuntulinux/#enable-ufw-forwarding

我认为针对您的案例的整个配方将是:

  • DEFAULT_FORWARD_POLICY="ACCEPT"
  • DOCKER_OPTS="--iptables=false"
  • 在iptables中配置NAT

  • 有关更多详细信息,请参见Running Docker behind the ufw firewall

    09-10 12:13
    查看更多