gpt4 book ai didi

amazon-web-services - 如何在 Amazon EC2 容器服务 (ECS) 中使用不安全的 Docker 注册表?

转载 作者:行者123 更新时间:2023-12-04 11:23:12 25 4
gpt4 key购买 nike

我们在 AWS VPC 中使用了一个外部无法访问的 Docker 注册表。我们希望能够从此注册表中启动 ECS 中的任务,但是我们看到该服务仅处于 PENDING 状态,因为 Docker 守护程序无法访问注册表。

我通过更改启动配置的用户数据找到了一种解决方法,但感觉并不是最好的方法:

#!/bin/bash
echo ECS_CLUSTER=MY_CLUSTER_NAME >> /etc/ecs/ecs.config
echo OPTIONS=--insecure-registry=insecure.registry.hostname:5000 > /etc/sysconfig/docker
service docker restart
docker start ecs-agent

这完美地工作,我可以看到我的任务按预期运行。我只是不认为这一定是最好的方法。

AWS 将我指向 this文章讨论了使用私有(private)注册表进行身份验证,但我不想进行身份验证,只是为了让 Docker 忽略我正在使用不安全(即不是 HTTPS)注册表的事实。

有没有人有更好的解决方案?

谢谢

最佳答案

我已经与 AWS 进行了进一步的交谈,并有以下解决方案:

您可以使用在启动时执行的用户数据脚本来执行诸如设置 docker 选项(包括 --insecure-registry )之类的操作。例如,--insecure-registry可以使用如下脚本设置:

#cloud-config
bootcmd:
- cloud-init-per instance $(echo "OPTIONS=\"--insecure-registry=hostname:5000\"" > /etc/sysconfig/docker)

这种方式通过不重启 docker 来避免之前的解决方案。

关于不安全的方法,如果我们使用自签名证书,我们可以通过将证书添加到系统 CA 信任库或 Docker 的特殊信任库来利用这一点。

在 Amazon Linux AMI 和 ECS 优化 AMI 上,系统 CA 信任存储位于 /usr/share/pki/ca-trust-source/usr/share/pki/ca-trust-source/anchors (取决于格式,请参阅 /usr/share/pki/ca-trust-source/README 了解详细信息)并且您需要运行 update-ca-trust添加证书后的命令。 Docker 关于不安全注册表的文档提供了更多详细信息:

https://docs.docker.com/reference/commandline/cli/#insecure-registries
https://github.com/docker/docker/blob/master/docs/sources/articles/certificates.md

我希望这也对其他人有所帮助

关于amazon-web-services - 如何在 Amazon EC2 容器服务 (ECS) 中使用不安全的 Docker 注册表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29796273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com