gpt4 book ai didi

ssl - 带有 Amazon S3 和 TLS 设置的 Docker Registry 2.0

转载 作者:太空宇宙 更新时间:2023-11-03 13:53:25 27 4
gpt4 key购买 nike

我正在尝试在我们的亚马逊云中为我们公司设置内部 docker-registry,它将所有内容存储在 S3 中并使用 TLS

以下是我执行的步骤:
1) 在亚马逊创建新的机器人账户
2) 创建新策略并将其分配给该机器人:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
},
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::docker-repo-storage",
"arn:aws:s3:::docker-repo-storage/*"
]
}
]
}

3) 根据策略“docker-repo-storage”创建同名存储桶
4)已安装的docker:

curl -sSL https://get.docker.com/ | sh

5) 在“/etc/docker/certs/”中下载我们公司的通配符证书和 key
6) 在“/etc/docker/config/config.yml”中创建配置文件

version: 0.1
log:
level: debug
fields:
service: registry
storage:
s3:
accesskey: <my_key_which_i_hide>
secretkey: <my_secret_key_which_i_hide>
region: eu-central-1
bucket: docker-repo-storage
encrypt: true
secure: true
v4auth: true
http:
addr: <my_domain_which_I_hide>:5000
tls:
certificate: /etc/docker/certs/wcard.<my_cert>.crt
key: /etc/docker/certs/wcard.<my_key>.key

7) 根据我安装 docker 的机器的 IP 在亚马逊“Route 53”中注册域
8) 使用以下参数运行 docker:

docker run -d -p 5000:5000 --restart=always --name <my_custom_name> -v 'pwd'/config.yml:/etc/docker/config/config.yml registry:2

根据 official documentation 中的描述

它运行成功,所以我执行休闲测试:

docker pull ubuntu && docker tag ubuntu localhost:5000/mytestimg
docker push localhost:5000/mytestimg

转到 S3 存储桶 - 它是空的,图像没有上传到 S3 存储,而是存储在本地 EC2 实例 VM 上

我使用 docket 设置了另一个节点并尝试从该 repo 中提取“mytestimg”:

docker pull <my_domain>:5000/mytestimg
Using default tag: latest
Error response from daemon: unable to ping registry endpoint https://<my_domain>:5000/v0/
v2 ping attempt failed with error: Get https://<my_domain>:5000/v2/: tls: oversized record received with length 20527
v1 ping attempt failed with error: Get https://<my_domain>:5000/v1/_ping: tls: oversized record received with length 20527

如您所见,它无法 ping。我从配置中删除了 TLS,最密集的帮助,我添加了配置并从命令行运行所有参数:

docker run -d -p 5000:5000 --restart=always --name <custom_name> -e SETTINGS_FLAVOR=s3 -e AWS_BUCKET=docker-repo-storage -e STORAGE_PATH=/registry -e AWS_KEY=<hidden> -e AWS_SECRET=<hidden> -e AWS_REGION=eu-central-1 -e STORAGE_REDIRECT=true -e SEARCH_BACKEND=sqlalchemy -v `pwd`/certs:/etc/docker/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/etc/docker/certs/wcard.<hidden>.crt -e REGISTRY_HTTP_TLS_KEY=/etc/docker/certs/wcard.<hidden>.key registry:2

它不起作用,也不是这样的:

docker run -d -p 5000:5000 --restart=always --name <custom_name> -e SETTINGS_FLAVOR=s3 -e AWS_BUCKET=docker-repo-storage -e STORAGE_PATH=/registry -e AWS_KEY=<hidden> -e AWS_SECRET=<hidden> -e AWS_REGION=eu-central-1 -e STORAGE_REDIRECT=true -e SEARCH_BACKEND=sqlalchemy registry:2

我做错了什么?为什么它忽略 S3 而不是在那里上传?为什么我无法从另一台机器连接并且 ping v0、v1、v2 失败?

请帮忙

最佳答案

我在创建自己的私有(private)存储库时遇到了同样的问题。

当我在 docker 主机和连接节点中导出 DOCKER_OPTS 环境变量时,问题得到解决。

例子DOCKER_OPTS=--insecure-registry=xx.xxx.xxx.xxx:5000

关于ssl - 带有 Amazon S3 和 TLS 设置的 Docker Registry 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31996256/

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