docker如何建立本地私有仓库,并将docker镜像推到私有仓库

ops/2024/10/21 19:26:18/

在 Docker 中,您可以通过 Docker Registry 创建本地私有仓库,并将 Docker 镜像推送到这个私有仓库。以下是具体步骤:

步骤 1:启动一个本地 Docker 私有仓库

  1. 拉取 registry 镜像
    Docker 官方提供了一个 registry 镜像,可以用来运行私有仓库。首先,您需要从 Docker Hub 拉取这个镜像:

    docker pull registry
    
  2. 启动私有仓库容器
    使用 docker run 启动 registry 容器,映射到主机的 5000 端口:

    docker run -d -p 5000:5000 --name my-private-registry registry
    

    这将启动一个 Docker 容器,在本地的 5000 端口上运行私有仓库。

步骤 2:构建或标记 Docker 镜像

  1. 构建 Docker 镜像
    如果您还没有 Docker 镜像,可以通过 Dockerfile 构建镜像:

    docker build -t my-app:1.0 .
    
  2. 为镜像打标签
    Docker 需要通过特定的 URL 格式来识别私有仓库,因此您需要为镜像打上私有仓库的标签。格式为:<registry-ip>:<port>/<image-name>:<tag>

    假设私有仓库在本地运行,标签可以像这样:

    docker tag my-app:1.0 localhost:5000/my-app:1.0
    

步骤 3:推送镜像到私有仓库

  1. 推送镜像
    将打过标签的镜像推送到本地私有仓库:

    docker push localhost:5000/my-app:1.0
    
  2. 查看仓库中的镜像
    您可以通过以下命令验证仓库中是否有刚推送的镜像:

    curl http://localhost:5000/v2/_catalog
    

    这会列出当前私有仓库中所有可用的镜像。

步骤 4:从私有仓库拉取镜像

  1. 从私有仓库拉取镜像
    在其他机器或本地的 Docker 环境中,您可以使用以下命令从私有仓库拉取镜像:

    docker pull localhost:5000/my-app:1.0
    

步骤 5:配置仓库的持久化存储(可选)

如果您想让仓库中的镜像持久化存储在磁盘上,可以通过挂载主机目录到容器中实现:

docker run -d -p 5000:5000 --name my-private-registry \-v /path/to/your/local/storage:/var/lib/registry \registry

这样,所有推送到私有仓库的镜像将保存在 /path/to/your/local/storage 目录中。

步骤 6:配置 HTTPS(可选)

为了确保私有仓库的安全性,建议配置 HTTPS。简要步骤如下:

  1. 使用证书管理工具(如 openssl)生成 SSL 证书。

  2. 修改 registry 容器启动命令,挂载证书文件并启用 HTTPS:

    docker run -d -p 5000:5000 --name my-private-registry \
    -v /path/to/your/certs:/certs \
    -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
    -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
    registry
    

此时,您可以通过 HTTPS 推送和拉取镜像。

总结

  1. 启动本地私有仓库 docker run -d -p 5000:5000 --name my-private-registry registry
  2. 为镜像打标签 docker tag my-app:1.0 localhost:5000/my-app:1.0
  3. 将镜像推送到仓库 docker push localhost:5000/my-app:1.0
  4. 从私有仓库拉取镜像 docker pull localhost:5000/my-app:1.0

这就完成了创建本地私有 Docker 仓库并推送镜像的流程。


http://www.ppmy.cn/ops/127354.html

相关文章

Web APIs - 第2天笔记(黑马笔记)

目录 Web APIs - 第2天 事件 事件监听 事件类型 事件处理程序 事件类型 鼠标事件 键盘事件 焦点事件 文本框输入事件 事件对象 环境对象 回调函数 Web APIs - 第2天 学会通过为DOM注册事件来实现可交互的网页特效。 能够判断函数运行的环境并确字 this 所指代的对象…

使用Spring Boot打造中小型医院网站

1 绪论 1.1研究背景 随着计算机技术的成熟、普及&#xff0c;现代信息技术革命的迅猛发展,正冲击并进而改变着经济和社会结构。信息化的程度已经成为一个国家&#xff0c;一个企业&#xff0c;一个组织仍至一个人发展的基础和竞争成败的关键。 在实际的生活中&#xff0c;用户都…

shell脚本实现批量请求

目录&#xff1a; 1、上脚本代码2、脚本解析3、执行脚本命令 1、上脚本代码 上述脚本使用循环来调用接口并记录每次接口的响应时间来定位接口的响应性能是否符合预期。 2、脚本解析 官方脚本介绍网址&#xff1a; https://www.w3cschool.cn/linux/linux-shell-passing-argume…

Android 第5种启动模式:singleInstancePerTask

Android 第5种启动模式&#xff1a;singleInstancePerTask 随着 Android 版本的更新&#xff0c;应用启动模式逐渐丰富。在 Android 12 中&#xff0c;新增了一种启动模式——singleInstancePerTask。它是继 standard、singleTop、singleTask 和 singleInstance 之后的第五种启…

【Vue】Vue3.0(十三)中标签属性ref(加在普通标签上、加在组件标签上)、局部样式

上篇文章&#xff1a; 【Vue】Vue3.0 &#xff08;十二&#xff09;、watchEffect 和watch的区别及使用 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Vue专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年10月18日20点56分 文章目录 基本…

R语言机器学习算法实战系列(四)随机森林算法+SHAP值 (Random Forest)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍教程下载数据加载R包导入数据数据预处理数据描述特征选择数据切割调节参数构建模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve特征的重要性模型解释保…

MacOS安装BurpSuite

文章目录 一、下载地址二、下载注册机三、安装教程四、启动burpsuit五、免责声明 一、下载地址 https://portswigger-cdn.net/burp/releases/download?productpro&version2024.7.1&typeMacOsx二、下载注册机 https://github.com/NepoloHebo/BurpSuite-BurpLoaderKey…

【JavaEE初阶】深入透析文件-IO关于文件内容的操作(四种文件流)

前言 &#x1f31f;&#x1f31f;本期讲解关于CAS的补充和JUC中有用的类&#xff0c;这里涉及到高频面试题哦~~~ &#x1f308;上期博客在这里&#xff1a;【JavaEE初阶】文件-IO之实现文件系统的操作如何进行实现-CSDN博客 &#x1f308;感兴趣的小伙伴看一看小编主页&…