Docker Registry
Docker Registry deployment
$ docker run -d -p 5000:5000 --restart=always --name registry registry:2
Use Registry warehouse management and mirror
# 拉取镜像 redis:latest
$ docker pull redis
$ docker tag redis:latest localhost:5000/my-redis
$ docker push repository localhost:5000/my-redis
$ docker image remove redis:latest
$ docker image remove localhost:5000/my-redis
$ docker pull localost:5000/my-redis
Docker Registry Configuration
1. The image storage
创建一个 Registry,使用宿主机上的 /home/shiyanlou/data 目录作为存储镜像的数据卷:
$ docker run -d \
-p 5000:5000 \
--restart=always \
--name registry \
-v /home/shiyanlou/data:/var/lib/registry \
registry:2
将本地的 localhost:5000/my-redis 镜像推送到 Registry,然后查看 /home/shiyanlou/data 目录的变化:
$ docker push localhost:5000/my-redis
$ ls /home/shiyanlou/data
2. authentication mechanism
首先我们需要创建一个保存用户名和密码的认证文件夹,并使用 htpasswd 创建一个认证信息:
$ mkdir /home/shiyanlou/auth
$ docker run --entrypoint htpasswd registry:2 -Bbn shiyanlouuser shiyanloupass > auth/htpasswd
$ docker container rm -f registry
启动 Registry,使用该认证信息,需要将 /home/shiyanlou/auth 挂载到 Registry 的 /auth 目录:
$ 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 \
registry:2
# 登录方式
$ docker login localhost:5000