无法使用私有域连接到 Lightsail 中的 AWS 容器服务

时间:2021-01-16 21:37:35

标签: amazon-web-services network-programming docker-image amazon-lightsail

我在安装了 nginx (1.18.0) 的 AWS Lightsail 上创建了一个 Ubuntu (20.04 LTS) 实例。我还成功地将 docker 映像发布到 AWS Lightsail Container Service,当启用公共端点时,它可以正常工作。但是,我不想向公众公开此服务,而是通过我的 Ubuntu 实例上的反向代理将流量路由到它。

我的问题是当我尝试从我的 Ubuntu 实例卷曲容器服务的私有域 (.service.local:) 时,我得到 Could not resolve host servicename.service.local。根据 Lightsail docs(“私有域”部分),我的“Lightsail 资源与您的服务位于同一 AWS 区域”应该可以访问它。

我对网络还很陌生,所以我非常感谢您提供一些意见。为了从我的实例访问此服务,还有什么需要配置的吗?

我验证过的事情:

  • 当使用公共域连接到图像时,图像已启动并运行并且工作正常
  • 我在同一地区同时运行实例和容器服务

非常感谢!

1 个答案:

答案 0 :(得分:1)

我刚刚遇到了同样的问题。我启动了两个实例,一个使用 Amazon Linux 2,一个使用 Ubuntu 20.04。 AL2 实例可以通过域名解析和访问容器服务:

[ec2-user@ip-172-26-0-176 ~]$ host nginx.service.local
nginx.service.local has address 172.26.17.185
[ec2-user@ip-172-26-0-176 ~]$ curl http://nginx.service.local/
<!DOCTYPE html>
...

Ubuntu 实例不能。

删除 Ubuntu 实例上的 /etc/resolv.conf 并用 AL2 实例中的那个替换它有什么帮助:

[ec2-user@ip-172-26-0-176 ~]$ cat /etc/resolv.conf 
; generated by /usr/sbin/dhclient-script
search eu-central-1.compute.internal
options timeout:2 attempts:5
nameserver 172.26.0.2

它有效,但感觉不是一个特别干净的解决方案,因为这会覆盖 Ubuntu 的 systemd 管理的 resolv.conf。