在 AWS 中设置私有 docker 注册表并将其与 Beanstalk 一起使用

Posted

技术标签:

【中文标题】在 AWS 中设置私有 docker 注册表并将其与 Beanstalk 一起使用【英文标题】:Setting up private docker registry in AWS and using it with Beanstalk 【发布时间】:2015-08-22 09:00:15 【问题描述】:

我找到了几个关于如何做到这一点的参考资料,但是 - 我无法让其中任何一个工作。我遇到麻烦的地方是尝试开发自签名证书。如果最近能够 - 请帮助我。

【问题讨论】:

您能否更具体地解释一下您尝试过的方法以及您需要帮助的地方? 【参考方案1】:

如果您尝试部署私有注册表,有几件事。

根据 docker 版本,您应该在 registryregistry 2.0 之间进行选择。还是直接从源头上?我无法让源代码工作,我认为registry 2.0 需要最新的docker。我的 docker api 版本是 1.17,我只能让它与 registry 一起使用。

根据我的经验,生成自签名证书并没有什么特别之处,但是有一些关于添加 CA 的提示。我按照本文的生成自签名证书部分:How To Set Up a Private Docker Registry on Ubuntu 14.04。我必须进行以下调整才能使其正常工作:

将 CA 添加到受信任的 CA 列表中

首先,将 CA ca.pem 转移到所有将使用注册表的机器上。接下来,将其添加到受信任的 CA 列表中。根据主机的操作系统,命令略有不同。

对于Ubuntu 14.04 sudo mkdir /usr/local/share/ca-certificates/docker-registry sudo cp ca.pem /usr/local/share/ca-certificates/docker-registry/ca.crt sudo update-ca-certificates

对于CoreOs sudo cp ca.pem /etc/ssl/certs/docker_registry_ca.pem sudo update-ca-certificates

备注:Ubuntu 14.04 只考虑.crt 文件。 CoreOs 只考虑.pem 文件;另外,对于CoreOs,文件必须在/etc/ssl/certs/,不包括任何子目录

如果您为 tls 使用 nginx 容器,这将使容器信任此 CA,因为它直接从主机提取其受信任的 CA 列表。但除此之外,您还需要让 Docker 也信任此 CA,以便从您未来的 registry 容器中提取和推送。这很容易实现,您只需要重新启动Docker daemon,它就会从更新的列表中重新加载受信任的 CA 列表。

对于Ubuntu 14.04 sudo service docker restart 对于CoreOS sudo systemctl restart docker

【讨论】:

以上是关于在 AWS 中设置私有 docker 注册表并将其与 Beanstalk 一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 AWS 在 Docker Cloud 中设置链接到 S3 的卷?

无法在 nodejs 中设置 AWS 凭证

从AWS ECS单独帐户中的私有注册表中提取容器

Docker 推送到 AWS ECR 私有存储库失败,JSON 格式错误

在 https:// 中设置默认 Wordpress 并将其重定向到 http:// 并在 Cloudflare 中将 http:// 转发到 https://

如何在 spark-shell 中设置 aws 访问密钥和 aws 密钥