-
拉取镜像仓库
docker pull registry -
查看所有镜像
docker images -
启动镜像服务器registry
首先在在主机上新建一个目录,供存储镜像
cd /usr/local/
mkdir docker_registry -
启动镜像
docker run -d -p 5000:5000 --name=jackspeedregistry --restart=always --privileged=true -v /usr/local/docker_registry:/var/lib/registry docker.io/registry
参数解释:
○ -p 5000:5000 端口
○ --name=jackspeedregistry 运行的容器名称
○ --restart=always 自动重启
○ --privileged=true centos7中的安全模块selinux把权限禁止了,加上这行是给容器增加执行权限
○ -v /usr/local/docker_registry:/var/lib/registry 把主机的/usr/local/docker_registry 目录挂载到registry容器的/var/lib/registry目录下,假如有删除容器操作,我们的镜像也不会被删除
○ docker.io/registry 镜像名称 -
查看启动的容器
docker ps -
从公有仓库拉取一个镜像下来,然后push到私有仓库中进行测试
这里用nginx镜像做测试
docker pull nginx
docker images -
给docker注册https协议,支持https访问
说明:每一个要使用本地仓库的服务器都添加这个。vim /etc/docker/daemon.json
如果daemon文件不存在,vim会自己创建一个,假如一下代码,{ "insecure-registries":["10.5.6.115:5000"], "registry-mirrors": ["https://registry.docker-cn.com"] }
如果有多个ip或域名,就用逗号分隔。
cat /etc/docker/daemon.json{ "registry-mirrors": ["http://f1361db2.m.daocloud.io","https://docker.mirrors.ustc.edu.cn"], "insecure-registries":["172.10.10.10:5000","172.10.10.11:5000"], "max-concurrent-downloads": 20 }
注释:
- insecure-registries----->开放注册https协议,不安全的镜像源
- registry-mirrors----->仓库源
然后别忘了要重启docker
systemctl restart docker
-
新建一个tag,把docker.io/nginx名称变成域名或者IP/镜像名称
docker tag docker.io/nginx 10.5.6.115:5000/nginx
如果带版本号的,则为:docker tag quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0 10.5.6.115:5000/kubernetes-ingress-controller/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0
-
推送到本地仓库
docker push 10.5.6.115:5000/nginx
docker push 10.5.6.115:5000/kubernetes-ingress-controller/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0
-
进入刚才新建的nginx仓库目录
cd /usr/local/docker_registry/docker/registry/v2/repositories/nginx
删除刚刚tag的镜像 (11.*******:5000/nginx刚才创建的镜像的tag)
docker rmi 10.5.6.115:5000/nginx
docker rmi nginx
查看镜像列表
docker images
-
拉取刚刚自己创建的镜像
docker pull 10.5.6.115:5000/nginx
docker pull 10.5.6.115:5000/kubernetes-ingress-controller/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0
本地私有仓库大功告成