我目前有一个正在运行的坞栈,它的服务可以通过网桥网络相互通信。
即使入站连接有效(Internet ->容器),出站也不会:我无法从这些容器中获得、卷曲、等等到internet。
我的主机运行在Centos上,考虑到在线上与这类问题相关的帖子数量,我禁用了firewalld来检查是否是问题所在:不是。
CentOS Linux 7.9.2009发行版
码头版本1.13.1,构建0be3e21/1.13.1
docker-编写版本1.28.5,构建c4eb3a1f
networks:
mynetwork:
driver: bridge
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.19.0.0/16",
"Gateway": "172.19.0.1"
}
]
},
"Internal": false,
"Attachable": true,
"Containers": {
[...]
},
"Options": {},
"Labels": {
"com.docker.compose.network": "mynetwork",
"com.docker.compose.project": "myproject",
"com.docker.compose.version": "1.28.5"
}带url的卷曲:
curl www.tester.com
curl: (6) Could not resolve host: www.tester.com虽然卷曲与IP工作。
这似乎与DNS有关,但我缺乏这方面的知识。我如何调整我的配置以授予我的容器访问互联网的权限?(不设置网络:主机)
编辑
将DNS设置到坞-组合文件中就像一种魅力。谢谢你的领头羊!
dns:
- 8.8.8.8
dns_search:
- domain.name对于那些尽管将DNS设置为停靠程序设置文件(守护进程/ docker.service /.)仍有类似问题的人,看来坞-组合不使用docker“自定义”默认值;所以直接使用坞-撰写
发布于 2021-06-30 02:01:34
有几种方法可用于为容器配置dns:
1.运行容器时添加dns:
docker run --dns 192.168.1.1 busybox nslookup google.com/etc/docker/daemon.json 2.配置dns /etc/docker/daemon.json以设置所有容器的默认dns:
{
"dns": ["192.168.1.1", "8.8.8.8"]
}然后,sudo service docker restart使其产生效果。
将systemd脚本/lib/systemd/system/docker.service 更改为包含 --dns**:**
[Service]
ExecStart=/usr/bin/dockerd --dns 192.168.1.1 -H fd:// -H tcp://0.0.0.0:2375 --containerd=/run/containerd/containerd.sock然后重新启动码头以使其生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker注意:您应该使用真正的dns来替换192.168.1.1的值。
https://stackoverflow.com/questions/68184235
复制相似问题