微服务实战系列之玩转Docker(六)

前言

刚进入大暑"清凉不肯来,烈日不肯暮",空调开到晚,还是满身汗。------碎碎念

我们知道,仓库可见于不同领域,比如粮食仓库、数据仓库。在容器领域,自然也有镜像仓库(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镜像管理仓库,为私有仓库的建设提供了一些帮助。当然如对私仓有更高的要求,我们需选择新的工具去完成,这里不再多言。博主希望后续有机会再来大论一番。


系列回顾


相关推荐
m0_741768854 小时前
使用docker的小例子
运维·docker·容器
最新小梦7 小时前
Docker日志管理
运维·docker·容器
ZHOU西口8 小时前
微服务实战系列之玩转Docker(十五)
nginx·docker·微服务·云原生·swarm·docker swarm·dockerui
lgbisha9 小时前
828华为云征文|华为云Flexus X实例docker部署最新Appsmith社区版,搭建自己的低代码平台
低代码·docker·华为云
记得开心一点嘛9 小时前
在Linux系统上使用Docker部署javaweb项目
linux·运维·docker
Persistence is gold11 小时前
cassandra指定配置文件的docker启动方法
运维·docker·容器
C语言扫地僧12 小时前
Docker 镜像制作(Dockerfile)
linux·服务器·docker·容器
无名之逆15 小时前
云原生(Cloud Native)
开发语言·c++·算法·云原生·面试·职场和发展·大学期末
ken_coding16 小时前
Windows11 WSL2的ubuntu 22.04中拉取镜像报错
linux·ubuntu·docker
Richardlygo16 小时前
(k8s)Kubernetes部署Promehteus
云原生·容器·kubernetes