微服务实战系列之玩转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镜像管理仓库,为私有仓库的建设提供了一些帮助。当然如对私仓有更高的要求,我们需选择新的工具去完成,这里不再多言。博主希望后续有机会再来大论一番。


系列回顾


相关推荐
容器魔方18 小时前
华为云亮相 KubeCon China 2025,开源生态引领 AI 时代技术跃迁
云原生·容器·云计算
字节跳动开源1 天前
Gödel Rescheduler:适用于云原生系统的全局最优重调度框架
云原生
容器魔方2 天前
Volcano v1.12 正式发布!驱动云原生AI与批量计算向智能高效新阶段演进
云原生·容器·云计算
Johny_Zhao2 天前
CentOS Stream 8 高可用 Kuboard 部署方案
linux·网络·python·网络安全·docker·信息安全·kubernetes·云计算·shell·yum源·系统运维·kuboard
在未来等你2 天前
互联网大厂Java求职面试:云原生架构与微服务设计中的复杂挑战
java·微服务·ai·云原生·秒杀系统·rag·分布式系统
爱瑞瑞2 天前
云原生学习笔记(八) Docker 实战:宿主机与容器的信息交互与共享策略
docker·容器
程序员老乔2 天前
【Dify系列】【一】【安装与部署】【ubuntu22.04安装docker部署dify1.4.2】
运维·docker·容器
sealaugh322 天前
docker(学习笔记第一课) 使用nginx +https + wordpress
笔记·学习·docker
爱瑞瑞2 天前
云原生学习笔记(七) Docker 实战:使用 Docker 快速构建 Oracle 12c 容器
docker·oracle
exe4522 天前
使用docker中的ollama
运维·docker·容器