Docker 群,无法连接到容器内的 aws RDS

问题描述 投票:0回答:1

我在我的实例中设置了一个 docker swarm,但在连接到 docker 容器内的数据库时遇到问题。如果我跑步

nslookup xxxxxx.xxxxxxx.eu-west-2.rds.amazonaws.com
我得到

Server:         10.0.0.2
Address:        10.0.0.2#53

Non-authoritative answer:
Name:   xxxxxx.xxxxxxx.eu-west-2.rds.amazonaws.com
Address: xxx.x.x.xx

但是当我 ssh 进入 docker 容器并重复相同的命令时,我得到:

Server:         127.0.0.11
Address:        127.0.0.11:53

** server can't find xxxxxx.xxxxxxx.eu-west-2.rds.amazonaws.com: SERVFAIL

RDS和EC2都是同一个VPC的一部分,RDS实例不是公共的 潜在的问题可能是什么?

amazon-ec2 docker-swarm amazon-vpc
1个回答
0
投票

问题出在docker容器的DNS配置上。容器在运行时无法获取 DNS 配置。

测试:

docker run -it --dns=10.0.0.2 ubuntu:20.04 bash
apt update
apt install dnsutils
nslookup xxxxxx.xxxxxxx.eu-west-2.rds.amazonaws.com

使其持久化(对于 Linux 实例):

nano /etc/docker/daemon.json
#copy followings:
{
  "dns": [ "10.0.0.2" ],
}
sudo systemctl restart docker  # restart docker service, or restart ec2 instance

对于 Win 实例:

create C:\ProgramData\docker\config\daemon.json
#copy followings:
{
   "dns": [ "10.0.0.2" ],
}
Restart-Service -Name docker  # restart docker service
© www.soinside.com 2019 - 2024. All rights reserved.