我有一个 Docker Compose 文件,启动几个容器,包括 Prometheus、Alertmanager 和 Grafana。这些容器无法连接到互联网。我尝试了多种解决方案,但都没有成功。
我使用的是 DigitalOcean Ubuntu Droplet,以下是我的 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
to
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
我尝试了许多选项,但还没有找到解决方案。有人能帮我吗?如果需要更多细节,请告诉我。
docker run -it ubuntu /bin/bash
,然后使用apt update && apt install iputils-ping
安装ping工具,接着尝试通过IP地址和完全限定域名(FQDN)来ping谷歌。如果问题仍然存在,则需要在您的局域网中进行搜索。 - Max