1.设置insecure-registry:
可能会出现无法push镜像到私有仓库的问题。
这是因为我们启动的registry服务不是安全可信赖的。
1) sudo vim /etc/default/docker
DOCKER_OPTS="--insecure-registry 10.229.43.237:5000"
2) $ sudo service docker restart
2.获取registry镜像
Registry以前是用Python写的,考虑到效率问题,
后来用Go重写一遍,所以github看到的是distribution。
https://github.com/docker/distribution
$ sudo docker pull registry:2.5.1
3.启动registry容器
$ sudo docker run -d -v /opt/registry:/var/lib/registry -p 10000:5000 --restart=always --name registry registry:2.5.1
$ netstat -an | grep 5000 检查5000端口是否被占用。
Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,
我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/registry目录。
打开浏览器输入http://127.0.0.1:10000/v2,可以访问说明registry运行正常。
4.Tag镜像
$ sudo docker tag hello-world 127.0.0.1:10000/hello-world
$ sudo docker images 可以看到新产生了一个本地镜像127.0.0.1:10000/hello-world
5.推送本地镜像到私有Registry
$ sudo docker push 127.0.0.1:10000/hello-world
打开浏览器输入http://127.0.0.1:10000/v2/_catalog,检查registry是否包含hello-world
6.删除本地镜像
$ sudo docker rmi 127.0.0.1:10000/hello-world
7.重新拉取镜像
$ sudo docker pull 127.0.0.1:10000/hello-world
$ sudo docker run 127.0.0.1:10000/hello-world