通过docker和ctr创建docker registry
链接: 官方文档
docker创建docker registry
例:
docker run -d \
--restart=always \
--name registry \
-v /registry/etc/registry/auth:/etc/registry/auth \
-v /registry/var/lib/registry:/var/lib/registry \
-e REGISTRY_AUTH=htpasswd \
-e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/authpasswd \
-p 5000:5000 \
registry:2
docker registry在容器内默认的监听端口为5000,如果需要更改容器内的监听端口,通过环境变量REGISTRY_HTTP_ADDR来控制
docker run -d \
-e REGISTRY_HTTP_ADDR=0.0.0.0:5001 \
-p 5000:5001 \
--name registry-test \
registry:2
外部监听端口,通过 -p 进行端口映射
存储文件挂载:
docker run -d \
-p 5000:5000 \
--restart=always \
--name registry \
-v /mnt/registry:/var/lib/registry \
registry:2
docker registry的默认镜像存储路径是:/var/lib/registry
启动docker registry身份验证:
docker run -d \
-p 5000:5000 \
--restart=always \
--name registry \
-v "$(pwd)"/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v "$(pwd)"/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
registry:2
ctr 创建docker registry
例:
ctr run -d \
--net-host \
--mount type=bind,src=/registry/etc/registry/auth,dst=/etc/registry/auth,options=rbind:rw \
--mount type=bind,src=/registry/var/lib/registry,dst=/var/lib/registry,options=rbind:rw \
--env REGISTRY_AUTH=htpasswd \
--env REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \
--env REGISTRY_AUTH_HTPASSWD_PATH='/etc/registry/auth/passwd' \
registry:2 registry
–net-host 将会在本机监听与容器内相同的端口。可以使用REGISTRY_HTTP_ADDR环境变量来控制监听的端口。
docker registry镜像查询:
curl -i -s --user "admin" http://127.0.0.1:5000/v2/_catalog