Zur*_*iar 6 docker docker-compose
当我将此行添加到我的/ etc/default/docker时
DOCKER_OPTS="--iptables=false"
Run Code Online (Sandbox Code Playgroud)
然后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
Run Code Online (Sandbox Code Playgroud)
设置iptables = false时,上述操作停止.kibana容器无法"找到"elasticsearch容器.但是当删除(和docker引擎重新启动)时,这很好.
为什么是这样?
(更重要的是,当使用ufw时,为什么iptables = false不是默认设置?)
谢谢
Cam*_*lva 14
来自https://docs.docker.com/v1.5/articles/networking/#between-containers
容器是否可以与世界对话受两个因素的制约.
主机是否愿意转发IP数据包?这由
ip_forward系统参数控制.如果此参数为,则数据包只能在容器之间传递1.通常,您只需将Docker服务器保留为默认设置--ip-forward=true,Docker将在服务器启动时为您设置ip_forward为1.你
iptables允许这个特殊的连接吗?iptables如果您--iptables=false在守护程序启动时设置,Docker将永远不会更改您的系统规则.否则,Docker服务器会将转发规则附加到DOCKER过滤器链.Docker不会从DOCKER过滤器链中删除或修改任何预先存在的规则.这允许用户预先创建进一步限制对容器的访问所需的任何规则.
来自https://docs.docker.com/engine/installation/linux/ubuntulinux/#enable-ufw-forwarding
如果在运行Docker的同一主机上使用UFW(简单防火墙),则需要进行其他配置.Docker使用网桥来管理容器网络.默认情况下,UFW会丢弃所有转发流量.因此,要在启用UFW时运行Docker,您必须适当地设置UFW的转发策略.
我认为你的案例的整个配方将是:
DEFAULT_FORWARD_POLICY="ACCEPT"DOCKER_OPTS="--iptables=false"有关更多详细信息,您可以在ufw防火墙后面看到Running Docker
| 归档时间: |
|
| 查看次数: |
9465 次 |
| 最近记录: |