【发布时间】:2021-01-12 15:09:42
【问题描述】:
我有一个 docker compose 文件,它可以启动几个容器,包括 prometheus、alertmanager 和 grafana。这些容器无法连接到互联网。我尝试了多种解决方案,但无济于事。 我正在使用 digitalocean ubuntu 液滴。
我的 docker-compose 文件:
version: '3'
services:
prometheus:
image: prom/prometheus:v2.20.1
container_name: prometheus
ports:
- 9090:9090
volumes:
- /data/prometheus:/prometheus
- ./prometheus/:/etc/prometheus/
restart: always
alertmanager:
image: prom/alertmanager:v0.21.0
container_name: alertmanager
ports:
- 9093:9093
- 6783:6783
command:
- '--log.level=debug'
- '--config.file=/etc/alertmanager/alertmanager_config.yml'
- '--storage.path=/alertmanager'
volumes:
- ./alertmanager:/etc/alertmanager
- /data/alertmanager:/alertmanager
restart: always
grafana:
image: grafana/grafana:7.1.5
container_name: grafana
ports:
- 3000:3000
volumes:
- ./grafana.ini:/etc/grafana/grafana.ini
restart: always
我尝试了多种方法
- 安装resolvconf并重启docker
service docker restart - 已将主机上的 /etc/resolv.conf 更改为指向 google 或 openDNS 服务器。
- 在 /etc/docker/daemon.json 中添加 DNS 并重启 docker
{
"dns" : ["172.24.100.50", "8.8.8.8"]
}
- 更改了容器内的 DNS 名称服务器
nameserver 127.0.0.11
options ndots:0
到
nameserver 127.0.0.11
nameserver 172.24.100.50
nameserver 8.8.8.8
命令在容器内运行
/alertmanager $ wget http://curl.haxx.se/download/curl-7.36.0.tar.gz
wget: bad address 'curl.haxx.se'
/alertmanager $ nslookup google.com
;; connection timed out; no servers could be reached
/alertmanager $
发送警报时,alertmanager 报错:
lookup api.<my website>.com on 172.24.100.50:53: read udp 172.18.0.5:44178->172.24.100.50:53: i/o timeout"
我尝试在主机网络上运行 alertmanager,但它仍然不起作用
docker run --net host -d prom/alertmanager:v0.21.0
docker exec -it <container_id> sh
/alertmanager $ cat /etc/resolv.conf
nameserver 172.24.100.50
nameserver 8.8.8.8
/alertmanager $ ls
/alertmanager $ wget http://curl.haxx.se/download/curl-7.36.0.tar.gz
wget: bad address 'curl.haxx.se'
/alertmanager $ set vc
/alertmanager $ nslookup google.com
;; connection timed out; no servers could be reached
我尝试了很多选项,但还没有找到解决方案。谁能帮我解决这个问题?如果需要更多详细信息,请告诉我。
【问题讨论】:
-
尝试用 IP 地址 ping google 以检查是 DNS 问题还是连接问题
-
nslookup 172.217.163.46 输出 ;;连接超时;无法访问任何服务器。我认为这是一个连接问题
-
试试这个:
docker run -it ubuntu /bin/bash然后用apt update && apt install iputils-ping安装 ping 然后尝试通过 ip 和 fqdn ping google。如果问题仍然存在,您必须在 LAN 上进行搜索。
标签: docker dns containers digital-ocean