当我将此行添加到我的/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"
有关更多详细信息,请参见Running Docker behind the ufw firewall