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

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

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

  1. 拉取 registry 镜像

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

    bash 复制代码
    docker pull registry
  2. 启动私有仓库容器

    使用 docker run 启动 registry 容器,映射到主机的 5000 端口:

    bash 复制代码
    docker run -d -p 5000:5000 --name my-private-registry registry

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

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

  1. 构建 Docker 镜像

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

    bash 复制代码
    docker build -t my-app:1.0 .
  2. 为镜像打标签

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

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

    bash 复制代码
    docker tag my-app:1.0 localhost:5000/my-app:1.0

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

  1. 推送镜像

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

    bash 复制代码
    docker push localhost:5000/my-app:1.0
  2. 查看仓库中的镜像

    您可以通过以下命令验证仓库中是否有刚推送的镜像:

    bash 复制代码
    curl http://localhost:5000/v2/_catalog

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

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

  1. 从私有仓库拉取镜像

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

    bash 复制代码
    docker pull localhost:5000/my-app:1.0

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

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

bash 复制代码
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:

    bash 复制代码
    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 仓库并推送镜像的流程。

相关推荐
Alsn863 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
2601_961875243 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant
java_cj3 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
程序员老赵3 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
杨浦老苏3 天前
轻量级Docker仪表板Servedash
运维·docker·监控·群晖·仪表板
正经教主3 天前
【docker基础】 第八周:容器监控与应用更新策略
运维·docker·容器
kiros_wang3 天前
Docker 使用完整指南
运维·docker·容器
正经教主3 天前
【docker基础】第九周:Docker安全与镜像优化
运维·docker·容器
CodeStats3 天前
【虚拟机】 从 CPU 指令到虚拟机隔离:虚拟机就是一个“模拟了完整硬件的普通进程”
java·docker
ai产品老杨3 天前
突破安防碎片化:基于 Docker 与边缘计算的 AI 视频智能化中台,如何通过 GB28181/RTSP 统一接入与全套源码交付实现二次开发自由?
人工智能·docker·边缘计算