为什么使用DOCKER_OPTS="--iptables=false";中断docker compose的DNS发现?
当我将此行添加到我的/etc/default/docker时为什么使用DOCKER_OPTS="--iptables=false";中断docker compose的DNS发现?,docker,docker-compose,Docker,Docker Compose,当我将此行添加到我的/etc/default/docker时 DOCKER_OPTS="--iptables=false" 那么DNS就不再工作了。docker compose启动的一组容器不再能够找到彼此: version: '2' services: elasticsearch: image: elasticsearch:latest volumes: - ./esdata:/usr/share/elasticsearch/data
DOCKER_OPTS="--iptables=false"
那么DNS就不再工作了。docker compose启动的一组容器不再能够找到彼此:
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不是默认设置??)
谢谢
一个容器能否与世界对话取决于两个因素
ip_forward
系统参数控制。如果此参数为1
,则数据包只能在容器之间传递。通常,您只需将Docker服务器保留在其默认设置--ip forward=true
,服务器启动时,Docker将为您将ip_forward设置为1
iptables
是否允许此特定连接?如果在守护进程启动时设置--iptables=false
,Docker将永远不会更改系统iptables
规则。否则Docker服务器将向Docker筛选器链附加转发规则
DEFAULT\u FORWARD\u POLICY=“ACCEPT”
DOCKER\u OPTS=“--iptables=false”
有关更多详细信息,请参见您是如何解决此问题的?