[英]Cannot connect to RDS from inside a docker container, I can from the host, and I can from a local docker container
我有一个安装了 docker compose 的 ec2 实例,运行单个容器。 我在我的机器上本地复制了相同的设置。
使用nc -v **host** 5432
结果:
如果有人能指出我正确的方向,我猜我在 ec2 的 docker 配置中缺少一些东西。
这是 docker_boot.service 文件
Description=docker boot
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/home/ubuntu/metabase
ExecStart=sudo /usr/bin/docker-compose -f /home/ubuntu/metabase/docker-compose.yml up -d --remove-orphans
[Install]
WantedBy=multi-user.target
这背后的原因是您的Docker 容器正在尝试使用公共 DNS 而不是私有的 DNS 解决您的 RDS DNS。
nslookup
您的RDS DNS并获取其 IPv4 地址之一。 然后,使用该单个 IPv4 作为您的host
。nslookup <ID>.rds.amazonaws.com
--dns
,您可以快速调整它,如果您的应用程序也尝试访问其他服务,您可以添加更多 DNS 。docker run --name app --dns=169.254.169.253 -p 80:5000 -d app
参考:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.