前言
Docker镜像仓库简单来说就是存储和管理Docker镜像的平台或服务。它允许开发人员上传自己创建的镜像,并与团队成员共享和协作使用。
1. 常见的镜像仓库
镜像仓库有公共的和私有的两种形式:
- 公共仓库:允许用户下载别人发布的镜像或者上传自己的镜像,例如国外Docker官方的DockerHub,国内也有网易云镜像服务,DaoCloud镜像服务,阿里云镜像服务等。
- 私有仓库:提供了更高的安全性和控制,例如用户自己搭建的本地私有Docker Registry。企业自己的镜像存放库等。
2. 搭建私有镜像仓库
可以参考我的CentOS7安装Docker里面的图形化界面版本的详细操作。
3. 私有库的推送、拉取镜像
在搭建好自己的图形化私有库之后,访问http://我的虚拟机IP:8080/,就可以看到,我这里暂时还没有上传镜像:
接下来,我会以之前下载的nginx镜像为例,演示如何上传镜像到私有库和从私有库拉取镜像的操作:
推送镜像到私有镜像库之前必须tag,那么tag命令究竟是什么呢?
我们可以用docker tag --help命令来看看,这个命令是用来干什么的:
看这里我们可以知道,docker tag命令是来创建一个新的镜像标签,这个新的标签指向已有的镜像。这样方便我们通过这样的标识来识别和管理镜像。
接下来,我们来用进行镜像的拉取和推送,步骤如下:
1)重新tag本地镜像,名称前缀为私有仓库的地址:我的虚拟机IP:8080/,你们根据自己的情况来命名:
docker tag nginx:latest 我的虚拟机IP:8080/nginx:1.0
结果如下:
我们可以看到打上tag标签的镜像跟原来的nginx镜像的镜像ID完全一致,说明这并不是一个新的镜像,而是原来的那个镜像。
2)将镜像推送到私有库
docker push 我的虚拟机IP:8080/nginx:1.0
结果如下:
这里可以看见,docker根据我们的tag标签,找到了我们自己搭建的私有库的地址,然后推送上去。我们访问一下私有库地址:http://虚拟机IP:8080/,就可以看到:
这里多了一个刚刚push上去的nginx镜像。点进去,可以看到镜像的大小以及tag的版本号:
3)从私有库拉取镜像
在拉去镜像前,我们下把本地已经下载好的nginx两个镜像删除:
可以看到,我的本地已经完全没有nginx的任何镜像了。
接下来,我们通过下面命令,从私有库上面拉取镜像:
docker pull 虚拟机IP:8080/nginx:1.0
结果如下:
然后,通过docker images命令查看一下都有哪些镜像:
这里显示,我们已经成功从私有库拉取镜像了。
4. 总结
接下来,我们总结一下,拉取镜像的重要步骤:
- 推送本地镜像到仓库前必须重命名(docker tag)镜像,以镜像仓库地址为前缀
- 镜像仓库推送前需要把仓库地址配置到docker服务的deamon.json文件中,被docker信任(这一步在搭建私有库里面有)
- 推送镜像使用docker push命令
- 拉取镜像使用docker pull命令
版权归原作者 我欲扶摇九万里 所有, 如有侵权,请联系我们删除。