我有一个 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
… 注册表镜像:
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/,但此证书是自签名的。