Docker教程小白实操入门(11)--如何构建私有Registry

网友投稿 238 2022-10-22

Docker教程小白实操入门(11)--如何构建私有Registry

一、需求

设置一个本地的私人仓库来进行镜像的管理。

二、创建一个私人仓库

仓库实际上就是一个容器,在Docker Hub中提供了创建私人仓库的镜像Resposity(镜像仓库):Registry

# 以Registry:2镜像为例,构建一个私人仓库。docker run -d -p 5000:5000 --restart=always --name registry registry:2

​​--restart=always​​​是指在​​Docker​​​服务重启或者​​registry​​容器退出时会重新启动。​​-p​​​是指将宿主机的​​5000​​​端口映射到容器的​​5000​​​端口,这样就可以通过​​宿主机ip:5000​​​访问到​​容器的5000端口​​​了。(​​registry​​​容器默认会监听​​5000端口​​)。​​-d​​参数是指在后台运行。​​-v​​​指定私人仓库的存储位置,添加​​-v /mnt/registry:/var/lib/registry​​​可以将私人仓库的存储位置设置为宿主机的​​/mnt/registry​​。

更多更详细的配置可以参考: ​​。

三、将镜像推送到私人仓库

1.  使用docker tag 给镜像加上一个标签

如果想要将镜像推送到私人仓库而不是​​Docker Hub​​​,首先必须使用​​docker tag​​命令,使用主机名和端口来标记一个镜像。

# 为ubuntu:latest镜像加上一个localhost:5000/my-ubuntu:latest的标签docker tag ubuntu:latest localhost:5000/my-ubuntu

2. 使用docker push将镜像推送到私人仓库

使用​​docker push​​​命令可以将镜像推送到仓库,默认情况下会将镜像推送到官方仓库​​Docker Hub​​中去,但是如果推送一个“用主机名和端口来标记”的镜像,那么就会推送到私人仓库。

docker push localhost:5000/my-ubuntu

四、从私人仓库拉取一个镜像

​​docker pull​​​可以从仓库拉取某个镜像,默认情况下,也是从官方仓库拉取。想从私人仓库拉取​​my-ubuntu:latest​​镜像,执行以下命令就行了。

docker pull localhost:5000/my-ubuntu

五、查看或者删除私人仓库中的镜像

​​Docker​​​提供的​​Registry​​​镜像没有提供查看镜像和删除镜像的指令,但是有第三方的软件可以提供这些功能,例如:​​harbor​​。

​​harbor​​提供一个可视化的界面来操作私人仓库,包括查看私人仓库中的镜像以及删除私人仓库中的镜像,除此以外,还有日志等非常有用的功能。

具体的安装与介绍请参照:​​。

六、删除私人仓库

私人仓库实质上就是一个容器,所以删除私人仓库就是删除私人仓库对应的容器。我们可以使用​​docker rm -f ​​​强制删除删除它,但是这样删除之后,私人仓库中存储的镜像并不会被删除掉。如果你想在删除私人仓库的同时,也将镜像删除,需要添加​​-v​​​参数,也就是​​docker rm -f -v​​。例如删除本地的私人仓库,可以执行以下语句:

docker rm -vf myregistry

七、完整实例

#!/bin/bash#构建一个私人仓库docker pull registry:2docker run -d -p 5000:5000 --restart=always --name myregistry registry:2#拉取busybox镜像docker pull busybox# 查看所有镜像docker images#1.使用docker tag给busybox加上一个标签localhost:5000/my-busybox:latest# 相当于再创建了一个镜像#********** Begin *********#docker tag busybox:latest localhost:5000/my-busybox:latest#********** End **********## 查看所有镜像docker images#2.将localhost:5000/my-busybox:latest镜像推送到私人仓库#********** Begin *********#docker push localhost:5000/my-busybox:latest#********** End **********##删除本地镜像docker rmi localhost:5000/my-busybox:latest# 查看所有镜像docker images#3.从私人仓库拉取localhost:5000/my-busybox:latest镜像#********** Begin *********#docker pull localhost:5000/my-busybox:latest#********** End **********## 查看所有镜像docker images#删除私人仓库并将私人仓库中的镜像也删除掉docker rm -vf myregistry

参考:​​https://educoder.net/shixuns/4uyn5ebp/challenges​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Springboot配置Swagger2登录密码的实现
下一篇:把运行在 Docker 容器内的 Microsoft SQL 服务器部署到 SAP Kyma 中
相关文章

 发表评论

暂时没有评论,来抢沙发吧~