如何在 docker-machine 中使用安全的 docker 注册表镜像?

詹姆斯·弗里曼

我有一个 docker 发行版 v2 注册表,我将其用作镜像。它使用 Docker for Mac Community Edition 17.03.1-ce-mac12 (17661) 工作,但是从 docker-machine 节点访问它时出现“由未知权限签名的证书”错误。设置如下:

openssl req -newkey rsa:4096 -nodes -sha256 -keyout "/certs/domain.key" -x509 -days "365" -out "/certs/domain.cert" -subj /CN=“192.168.17.11”

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain $DIR/devenv/domain.cert
docker run -d --restart=always -p 6000:5000 --name registry-mirror -v /Volumes/Data/registry_cache:/var/lib/registry registry:2 /var/lib/registry/config.yml

docker pull busybox

curl -k https://192.168.17.11:6000/v2/_catalog

{"repositories":["library/busybox"]}

docker-machine create -d virtualbox —engine-registry-mirror https://192.168.17.11:6000 mynode

docker-machine ssh mynode "sudo mkdir -p /etc/docker/certs.d/192.168.17.11:6000 && sudo chmod -R 777 /etc/docker/certs.d"
docker-machine scp $DIR/devenv/domain.cert mynode:/etc/docker/certs.d/192.168.17.11:6000/domain.cert
docker-machine scp $DIR/devenv/domain.key mynode:/etc/docker/certs.d/192.168.17.11:6000/domain.key
docker-machine restart mynode

eval $(docker-machine env mynode)
docker info

...注册表镜像:

https://192.168.17.11:6000/

docker pull busybox

cat /var/log/docker.log

… time="2017-05-30T12:33:01.593516721Z" level=debug msg="试图从https://192.168.17.11:6000/ v2拉出 busybox "

time="2017-05-30T12:33:02.539391694Z" level=warning msg="获取 v2 注册表时出错:获取https://192.168.17.11:6000/v2/ : x509:由未知机构签名的证书"

我不确定如何让 boot2docker VM 接受 docker duplication v2 注册表镜像使用的证书。其他示例将证书颁发机构的 ca.crt 复制到 /etc/certs.d/,但此证书是自签名的。

詹姆斯·弗里曼

重新启动托管此设置的 OSX 机器似乎已经解决了问题,目前,等待时间确定,这已经足够了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Docker使用Spring和mysql镜像撰写推送到注册表

带有镜像的Docker私有注册表

如何将不安全的Docker注册表与Amazon EC2容器服务(ECS)结合使用?

允许在配备docker-machine的主机中使用不安全的注册表

如何阻止Docker注册表?

未使用Docker注册表镜像

如何使用HTTP API从gcr.io Docker注册表中列出图像和标签?

如何在docker-compose中使用本地Docker镜像?

如何在Docker配置文件中指定Docker私有注册表凭证?

如何在Windows中为Docker工具箱设置注册表镜像

如何设置默认注册表以从Docker Machine中提取?

如何在gitlab中安全登录到私有Docker注册表?

使用Docker私有注册表的Kubernetes中没有ssl的Docker拉镜像

Codefresh:添加ecr时如何在docker注册表中使用承担角色?

如何在minikube注册表中创建docker镜像

如何在Kubernetes dockerconfigjson中使用Github软件包Docker注册表?

如何使用sbt-native-packager设置Docker注册表

在docker pull之前如何从不安全的注册表检查图像的压缩大小?

如何引用内部Docker注册表?

Docker:如何在基于Alpine的Docker镜像中使用bash?

如何在过去 6 个月内推送的私有注册表中找到所有 docker 镜像?

使用fabric8 java客户端将docker镜像推送到远程注册表

构建 docker 镜像而不将机密暴露给注册表

使用 docker-compose 构建 docker 镜像并推送到镜像/容器注册表?

Docker 私有注册表镜像上传

使用私有端点将 docker 镜像推送到容器注册表

如何使用 Cloudbuild 在具有不同标签的容器注册表中使用配置文件存储 docker 镜像?

如何将多架构 docker 镜像复制到不同的容器注册表?

我如何使用 ansible 从不安全的 docker 注册表中提取?