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


系列回顾


相关推荐
张忠琳1 小时前
【client-go v0.36.1】(store Part 3)Store 超深度分析 — 集成模式、完整数据流、不变量、与 DeltaFIFO 协作
云原生·kubernetes·informer·store·client-go
杨浦老苏2 小时前
开源多用户图书追踪系统LibrisLog
docker·群晖·收藏管理
赵渝强老师4 小时前
【赵渝强老师】Kubernetes(K8s)中的金丝雀升级
linux·docker·云原生·容器·kubernetes
鹤落晴春4 小时前
【K8s】配置存储卷
云原生·容器·kubernetes
我叫张小白。5 小时前
CentOS 7 安装 Docker并配置镜像加速(完整指南)
linux·docker·centos
张忠琳5 小时前
【client-go v0.36.1】(DeltaFIFO Part 1)DeltaFIFO 超深度分析 — 模块定位、类结构、接口层次、构造与初始化
云原生·kubernetes·deltafifo·informer·client-go
原来是猿6 小时前
Docker 【 技术架构(1)】
docker·容器·架构
阿里云云原生7 小时前
实战揭秘:如何通过 AI Agent Skill 让 K8s 应用自动接入云监控?
云原生
木雷坞7 小时前
Qdrant Docker 部署教程:数据卷、API Key 和集合初始化
运维·docker·容器·知识图谱
梦梦代码精7 小时前
为什么这个开源的AI平台会火?有点东西。。。
人工智能·算法·机器学习·docker·开源