2台虚拟机
192.168.50.173和192.168.50.174
Docker官方提供了registry镜像搭建本地私有仓库
现在先在服务器操作(192.168.50.174本地私有仓库)
下载私有仓库镜像
[root@registry ~]# docker pull registry
启动镜像
[root@registry ~]# docker run -itd -v /data/registry:/var/lib/registry -p
5000:5000 --restart=always --name registry registry:latest
参数说明
-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
-v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;
–restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
–name registry:创建容器命名为registry,你可以随便命名;
registry:latest:这个是刚才pull下来的镜像;
[root@registry ~]# curl http://127.0.0.1:5000/v2/_catalog
{“repositories”:[]}
刚运行的容器,还没上传任何镜像,所以是空的。
现在先在客户端操作(192.168.50.173)
[root@node ~]# cat /etc/docker/daemon.json
{
“insecure-registries” : [“192.168.50.174:5000”] //添加私有镜像服务器的地址
}
[root@node ~]# systemctl restart docker
下载一个测试镜像
[root@node ~]# docker pull busybox
查看刚下载的镜像
[root@node ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/busybox latest 19485c79a9bb 6 weeks ago 1.22 MB
打标签
[root@node ~]# docker tag busybox:latest 192.168.50.174:5000/busybox:v1
查看镜像
[root@node ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/busybox latest 19485c79a9bb 6 weeks ago 1.22 MB
192.168.50.174:5000/busybox v1 19485c79a9bb 6 weeks ago 1.22 MB
上传镜像,这就搭建且上传好一个镜像了
[root@node ~]# docker push 192.168.50.174:5000/busybox:v1
列出所有镜像
[root@node ~]#curl http://192.168.50.174:5000/v2/_catalog
{“repositories”:[“busybox”]}
列出busybox镜像有哪些tag:
[root@node ~]# curl http://192.168.50.174:5000/v2/busybox/tags/list
{“name”:“busybox”,“tags”:[“v1”]}
删除原来的全部镜像
[root@node ~]# docker rmi -f $(docker images -aq)
从registry服务器上下载busybox镜像
[root@node ~]# docker pull 192.168.50.174:5000/busybox:v1
另外
[root@test174 ~]# curl http://192.168.50.174:5000/v2/my/tags/list
{“name”:“my”,“tags”:[“01”,“02”]}
这里是上传了2个镜像,一个叫my:01 另外一个是my:02