AWS控制台(EC2仪表板)将EC2实例的公共DNS名称显示为ec2-99-xx-xx-xx.ca-central-1.compute.amazonaws.com
。
但是相同的AWS EC2具有不同的DNS名称(如下所示):
$ hostname -f
ip-172-xx-xx-xx.ca-central-1.compute.internal
与AWS控制台上显示的DNS名称相比。
EC2是在默认VPC中创建的。
AWS documentation说... 启动实例时,我们为实例分配一个主要的专用IPv4地址。还为每个实例提供了一个内部DNS主机名,该主机名解析为主要私有IPv4地址。例如ip-10-251-50-12.ec2.internal。您可以使用内部DNS主机名在同一VPC中的实例之间进行通信,但是我们无法解析 VPC外部的内部DNS主机名。
每个接收公共IP地址的实例也被赋予一个外部DNS主机名;例如ec2-203-0-113-25.compute-1.amazonaws.com。我们将外部DNS主机名从其VPC外部解析为实例的公共IP地址,并从其VPC内部解析为实例的私有IPv4地址。通过网络地址转换(NAT)将公用IP地址映射到主要私有IP地址
在使用以下命令为docker守护程序获取证书之前:
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=daemon daemon-csr.json | cfssljson -bare daemon
我们需要在CN
中添加daemon-csr.json
属性
hostname -f
与AWS控制台中显示的DNS名称相比具有不同的域。
1)
由于EC2具有多个DNS名称(.internal
和公用DNS),应将哪个DNS名称分配给CN
属性? ip-172-xx-xx-xx.ca-central-1.compute.internal
或ec2-99-xx-xx-xx.ca-central-1.compute.amazonaws.com
2)
如果CN
是ip-172-xx-xx-xx.ca-central-1.compute.internal
,那么在设置export DOCKER_HOST=tcp://ec2-99-xx-xx-xx.ca-central-1.compute.amazonaws.com DOCKER_TLS_VERIFY=1
之后,远程docker客户端是否可以与docker daemon连接?