前言
刚进入大暑 ,
"清凉不肯来,烈日不肯暮"
,空调开到晚,还是满身汗。------碎碎念
我们知道,仓库可见于不同领域,比如粮食仓库、数据仓库。在容器领域,自然也有镜像仓库(registry)。那为什么不是容器仓库呢? 你想想,再想想,仔细想想...
docker
默认支持公有
仓库和私有
仓库两种。而公有仓库比如Docker Hub
,因为在国外(所以你懂得),一般访问比较慢,甚至无法访问。此刻你需要一个加速器(比如常见的阿里云、网易云、腾讯云等)。
另外一类就是私有仓库,简单讲:"只为你服务"
,一般用于企业内部的业务。那么,本博将通过最简单的办法,教会你搭建一个专属的私有仓库。
Q:如何搭建一个最简单的Private仓库
我们可以基于docker官方提供的registry镜像,创建最简单的私有仓库。如何做,请紧跟博主,防止迷路。
为便于操作,本博的所有操作均基于docker desktop4.0.1完成,"所见即所得"
,一目了然。当然,如果需要熟练各种command,博主建议各位盆友在linux下完成相关操作(命令语句是完全一样的)。
一、搭建Private仓库
1. docker run
通过docker run
,我们先从公有仓库下载一个docker仓库镜像:registry
。命令如下:
powershell
docker run -dp 5000:5000 --restart=always --name myregistry registry
2. docker ps
通过docker ps
,可查看已运行的容器列表:
此时,如有一个desktop则更简单了,省去了很多麻烦,直接打开Container/Apps。
3. docker exec
我们通过docker exec
命令访问容器内部,或者直接在desktop上轻轻点一下即可:
4. 验证仓库运行是否成功
打开浏览器,输入http://localhost:5000/v2/_catalog
,如返回如下图:
那么,我们可以收到 Congratulation
啦!
博主操作均通过desktop完成,因可正常访问,所以并未对仓库的https验证进行特殊处理。如Linux
环境需要,请对daemon.json
文件进行如下设置并完成docker重启:
yaml
"insecure-registries": ["主机IP:5000"]
二、上传一个镜像
1. get image
仓库已备,抓紧找个现有的镜像哈。当然你可以通过docker build
,创建一个新镜像。为省事,博主还是去公共仓库"抓"
一个吧。
powershell
docker run -d -v d:/docker/data/redis:/usr/local/test/redis -p 6379:6379 redis:latest
通过-v
我们新建了一个卷(Volume),指定"主机-容器"
之间的目录映射。
成功之后,可以在Images中,看到一个新镜像:redis
。
2. tag image
接下来,博主通过docker tag
为redis镜像做个副本(据为己有
),命令如下:
powershell
docker tag 7614ae9453d1 localhost:5000/myredis:1.0
成功后,则看到下图,一个新镜像诞生了:myredis
,版本1.0
。
3. push image
通过docker push
,将myredis
上传私仓:
powershell
docker push localhost:5000/myredis:1.0
4. 验证上传是否成功
结语
docker registry
,一个简单的docker镜像管理仓库,为私有仓库的建设提供了一些帮助。当然如对私仓有更高的要求,我们需选择新的工具去完成,这里不再多言。博主希望后续有机会再来大论一番。
系列回顾
- 微服务实战系列之玩转Docker(五)
- 微服务实战系列之玩转Docker(四)
- 微服务实战系列之玩转Docker(三)
- 微服务实战系列之玩转Docker(二)
- 微服务实战系列之玩转Docker(一)
- 微服务实战系列之云原生