1.docker pull registry
2.
注意:如果不加--privileged=true的时候,在push image的时候会报received unexpected HTTP status: 500 Internal Server Error
此版本registry默认的容器仓库地址/var/lib/registry
3.测试
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/registry latest c2a449c9f834 6 days ago 33.18 MB
docker.io/ubuntu latest d355ed3537e9 2 weeks ago 119.2 MB
127.0.0.1:5000/centos latest 3bee3060bfc8 4 weeks ago 192.5 MB
127.0.0.1:5000/centoss latest 3bee3060bfc8 4 weeks ago 192.5 MB
docker.io/registry 2.1.1 52bb991b482e 20 months ago 220.1 MB
docker tag d355ed3537e9 127.0.0.1:5000/ubuntu
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/registry latest c2a449c9f834 6 days ago 33.18 MB
docker.io/ubuntu latest d355ed3537e9 2 weeks ago 119.2 MB
127.0.0.1:5000/ubuntu latest d355ed3537e9 2 weeks ago 119.2 MB
127.0.0.1:5000/centos latest 3bee3060bfc8 4 weeks ago 192.5 MB
127.0.0.1:5000/centoss latest 3bee3060bfc8 4 weeks ago 192.5 MB
docker.io/registry 2.1.1 52bb991b482e 20 months ago 220.1 MB
docker push 127.0.0.1:5000/ubuntu
The push refers to a repository [127.0.0.1:5000/ubuntu]
0566c118947e: Pushed
6f9cf951edf5: Pushed
182d2a55830d: Pushed
5a4c2c9a24fc: Pushed
cb11ba605400: Pushed
latest: digest: sha256:a0ee7647e24c8494f1cf6b94f1a3cd127f423268293c25d924fbe18fd82db5a4 size: 1357
测试成功
4.配置私有仓库通过用户登录
4.1准备
- mkdir /opt/registry-var/auth/
- docker run --entrypoint htpasswd registry -Bbn test test1 >> /opt/registry-var/auth/htpasswd
-Bbn 参数用于添加用户名与密码,上面添加了用户名为test 用户密码为test1的用户
4.2启动registry的命令
docker run -d -p 5000:5000 --restart=always --privileged=true -v /opt/registry-var/auth/:/auth/ -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -v /opt/registry:/var/lib/registry registry
命令详解:
-p 5000:5000 #指定宿主机端口与容器端口的绑定
-e xxxx #添加环境变量
-v #指定宿主机文件挂载到 容器某个文件下
4.3测试
没有登录的话 pull,push命令回报错
登录 docker login 127.0.0.1:5000
根据提示输入 用户名 与用户密码
提示:
[root@localhost auth]# docker login 127.0.0.1:5000
Username: test
Password:
Login Succeeded
登录成功后可以正常操作