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 仓库并推送镜像的流程。

相关推荐
Anastasiozzzz3 分钟前
Docker介绍与常见指令
运维·docker·容器
qq_2290580128 分钟前
Docker常用命令
linux·服务器·docker
春日见29 分钟前
Docker如何基于脚本拉取镜像,配置环境,尝试编译
运维·驱动开发·算法·docker·容器
wacpguo35 分钟前
Ubuntu 24.04 安装 Docker
linux·ubuntu·docker
yunlong32671 小时前
吊装助理顶部板式吊耳设计模块使用教程
容器·施工·化工·吊装·起重·钢结构·吊耳
你才是臭弟弟2 小时前
Docker 容器使用运行镜像(Windows)
运维·docker·容器
IT运维爱好者2 小时前
【Docker】解决Docker容器时间与宿主机时间不一致的几种方法
docker·容器
鸠摩智首席音效师2 小时前
如何在 Docker 容器下运行 cronjob ?
运维·docker·容器
橙露2 小时前
Kubernetes 集群运维:故障排查、资源调度与高可用配置
运维·容器·kubernetes
skywalk81632 小时前
clonos control-pane: FreeBSD下的CBSD的web管理版(未完成,还有500error错误)
服务器·云原生·容器·freebsd·cbsd