一、单机部署Docker Registry
1、pull镜像
~]# docker pull registry:2.6.2
2、创建/docker/auth/授权使用目录
~]# mkdir /docker/auth -p
3、创建一个用户并生成一个密码
~]# docker run --entrypoint htpasswd registry:2.6.2 -Bbn finance 666666 > /docker/auth/htpasswd
4、启动docker registry
~]# docker run -d -p 5000:5000 --name registry1 -v /docker/auth/:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd registry
注:
-v 指定宿主机和容器中目录映射关系
-e 传递环境变量参数
5、确认容器启动情况和,端口监听情况
6、登录测试
①测试客户端登录registry
~]# docker login 49.*****.248:5000
②测试结果:登录失败
③解决上述登录报错
在客户端docker的service文件第14行添加非安全的镜像仓库--insecure-registry 49.*****.248:5000
~]# vim /lib/systemd/system/docker.service
9 [Service]
10 Type=notify
11 # the default is not to use systemd for cgroups because the delegate issues still
12 # exists and systemd currently does not support the cgroup feature set required
13 # for containers run by docker
14 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 49.*****.248:5000
15 ExecReload=/bin/kill -s HUP $MAINPID
16 TimeoutSec=0
17 RestartSec=2
18 Restart=always~]# systemctl daemon-reload #重载配置文件
~]# systemctl restart docker
④添加参数重启后登录测试
7、镜像打tag,并测试上传到registry
~]# docker tag nginx:1.12 49.*****.248:5000/linux/nginx:1.12-test
~]# docker push 49.*****.248:5000/linux/nginx:1.12-test
8、测试在另外的客户端下载镜像
注:下载前需要先登录
~]# docker login 49.*****.248:5000
~]# docker pull 49.*****.248:5000/linux/nginx:1.12-test
9、使用下载的镜像测试启动一个容器
~]# docker run -d -p 80:80 --name registry-nginx-test 49.*****.248:5000/linux/nginx:1.12-test