记录Docker搭建私有仓库的步骤教程

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 记录Docker搭建私有仓库的步骤教程

我们知道 dockerHub 公共仓库是外网的,这就导致访问时特别慢,所以一般公司都会搭建私人的镜像仓库来保存镜像,本文主要介绍了 Docker 搭建私有仓库的步骤教程,感兴趣的可以了解一下,做个参考。

背景介绍

Docker registry 是存储 Docker image 的仓库,运行 push、pull、 search 时,是通过 Docker daemon 与 docker registry 通信。

Docker Hub(Docker 埠,内有大量存储库或叫仓库)是 Docker 提供的一项服务,用于查找和与您的团队共享容器镜像。它是世界上最大的容器镜像存储库,拥有一系列内容源,包括容器社区开发人员、开放源代码项目和独立软件供应商(ISV)在容器中构建和分发代码。

使用私有仓库有许多优点:

1)节省网络带宽,针对于每个镜像不用每个人都去中央仓库上面去下载,只需要从私有仓库中下载即可;

2)提供镜像资源利用,针对于公司内部使用的镜像,推送到本地的私有仓库中,以供公司内部相关人员使用。

因为 dockerHub 公共仓库是外网的,所以访问就特别慢,所以一般公司都会搭建私人的镜像仓库来保存镜像。一台服务上用 docker 开启一个私有仓库的镜像,后续其他的 docket 服务器都将镜像保存在这个私有的仓库。

设置私有镜像仓库

# 下载镜像
docker pull registry
# 启动镜像
docker run -itd -v /home/wuzhibin/docker/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
 
-itd:在容器中打开一个伪终端进行交互操作,并在后台运行
-v:把宿主机的/home/wuzhibin/docker/registry 目录绑定到容器/var/lib/registry 来实现数据的持久化;
-p:映射端口;访问宿主机的 5000 端口就访问到 registry 容器的服务了
--restart=always: 这是重启的策略,在容器退出时总是重启容器
--name registry: 创建容器命名为 registry

拉起官方镜像,在一台搭建镜像仓库的容器,并将容器的数据盘映射本地数据持久化,最终的目的是将设置为私有的镜像仓库保存镜像。

添加镜像仓库

# 在其他的服务上设置的镜像仓库地址为私仓地址
vim /etc/docker/daemon.json
{
  "insecure-registries": ["192.168.1.200:5000"],
  "registry-mirrors":  ["https://zh7ton3p.mirror.aliyuncs.com"]
}
 
systemctl daemon-reload
systemctl restart docker
 
# insecure-registries 为上一步开启的私有仓库地址
# registry-mirrors 为阿里云镜像加速地址
# 修改 docker 配置之后一定要重新启动 docker 
 
# 推送镜像到私仓
# 拉取 nginx 测试镜像
docker pull nginx 
# 打上私仓标签,如果想推送到私仓必须打上私仓的标签,应该为默认是推送到公共仓库的。
docker tag mginx:latest 192.168.1.200:500/nginx:v1
# 查看镜像名
docker images
# 推送私仓,192.168.1.200:5000/nginx:v1 为上一步打上镜像名的镜像
docker push 192.168.1.200:5000/nginx:v1
# 查看私仓镜像仓库
curl http://192.168.1.200:5000/v2/_catalog
# 结果为{"repositories":["nginx"]}表面
# 查看私仓的镜像版本
curl http://192.168.118.16:5000/v2/ubuntu/tags/list

在其他的服务上设置的镜像仓库地址为私仓地址就可以通过私仓拉起分发布镜像了, 拉取私仓的镜像不仅仅要设置镜像仓库的地址,另外镜像上也要打上私仓的标签,不能默认会从公共仓库拉起和发布。

拉私仓的镜像

# 拉取私仓的镜像, 其他的服务器也需要和上一步一样添加 docker 配置中添加私仓地址
# 不加私仓地址会默认从公共仓去拉起,
docker pull 192.168.1.200:5000/nginx:v1
# 查看拉起的镜像
docker images


image.png


以上就是关于 Docker 搭建私有仓库的步骤教程,做个记录,也希望对大家有帮助。

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1月前
|
SQL API 流计算
实时计算 Flink版产品使用合集之在Mac M1下的Docker环境中开启SQL Server代理的操作步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
161 1
|
16天前
|
Docker 容器
尚硅谷2024新版3小时速通Docker教程
尚硅谷2024新版3小时速通Docker教程
10 1
尚硅谷2024新版3小时速通Docker教程
|
22天前
|
存储 网络安全 数据安全/隐私保护
Docker--harbor私有仓库部署与管理
Docker--harbor私有仓库部署与管理
Docker--harbor私有仓库部署与管理
|
3天前
|
数据安全/隐私保护 开发者 Docker
国内docker公开镜像站的关闭!别急,docker_image_pusher 使用Github Action将国外的Docker镜像转存到阿里云私有仓库
通过使用 docker_image_pusher 这样的开源项目,我们能够轻松地解决国内访问 Docker 镜像拉取速度慢及拉去失败的问题,同时保证了镜像的稳定性和安全性。利用 Github Action 的自动化功能,使得这一过程更加简单和高效。
210 2
|
10天前
|
Docker 容器
蓝易云 - Docker修改容器ulimit的全部方案及各方案的详细步骤
以上就是修改Docker容器ulimit的全部方案及其详细步骤。
17 2
|
1月前
|
存储 JSON 安全
Docker 的 overlay2 扩容教程
Docker 的 overlay2 扩容教程
101 3
|
30天前
|
存储 应用服务中间件 nginx
Ubantu docker学习笔记(八)私有仓库
Ubantu docker学习笔记(八)私有仓库
|
1月前
7.Docker 私有仓库
7.Docker 私有仓库
|
1月前
|
关系型数据库 MySQL 数据库
docker 安装mysql(踩坑踩得想哭 详细解决教程)ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using pa
docker 安装mysql(踩坑踩得想哭 详细解决教程)ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using pa
92 1
|
1月前
|
Ubuntu Docker 索引
ubuntu 20.04 安装docker教程和安装中遇到的问题解决方案(超详细 附加图文教程)
ubuntu 20.04 安装docker教程和安装中遇到的问题解决方案(超详细 附加图文教程)
186 0