docker pull registry //下载registry 镜像,registy为docker官方提供的一个镜像,我们可以用它来创建本地的docker私有仓库。
以registry镜像启动容器,-p会把容器的端口映射到宿主机上,:左边为宿主机监听端口,:右边为容器监听端口
docker run -d -p 5000:5000 registry
可以访问它
[root@py1 ~]# curl 127.0.0.1:5000/v2/_catalog
{"repositories":[]}
下面我们来把其中一个镜像上传到私有仓库
标记一下tag,必须要带有私有仓库的ip:port
docker tag centos_with_net 192.168.111.10:5000/centos_net
docker tag centos6 192.168.111.10:5000/centos6
docker push 192.168.111.10:5000/centos6 //把标记的镜像给推送到私有仓库
此时并不会成功,Get https://172.7.15.113:5000/v2/: http: server gave HTTP response to HTTPS client,因为默认用的https协议,我们需要改成http的
更改配置文件,vi /etc/docker/daemon.json//更改为
{ “insecure-registries”:[“192.168.111.10:5000”] }
示例:
[root@py1 ~]# cat /etc/docker/daemon.json
{ "insecure-registries":["192.168.111.10:5000"] }
{
"registry-mirrors": ["https://u6xqvohk.mirror.aliyuncs.com"]
}
systemctl restart docker
docker ps -a //查看容器已经关闭,还需要启动
docker start id //这里的id为registry容器id
再次push
docker push 172.7.15.113:5000/centos
docker push 192.168.111.10:5000/centos_net
curl 127.0.0.1:5000/v2/_catalog //可以查看到推送上来的镜像
[root@py1 ~]# curl 127.0.0.1:5000/v2/_catalog
{"repositories":["centos6","centos_net"]}
下载仓库里面的镜像:
docker pull 192.168.111.10:5000/centos_net
如果是其他的服务器需要在/etc/docker/daemon.json下加入:
{ “insecure-registries”:[“192.168.111.10:5000”] }