【Docker】搭建 Docker 镜像仓库

这篇具有很好参考价值的文章主要介绍了【Docker】搭建 Docker 镜像仓库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言:公有仓库和私有仓库

在 Docker 生态系统中,镜像仓库(Docker Registry)扮演着关键的角色,用于存储和分享 Docker 镜像。镜像仓库有公共的和私有的两种形式,每种形式都有其特定的应用场景。

公共镜像仓库

  1. Docker Hub

Docker Hub 是 Docker 公共仓库,是最大的 Docker 镜像仓库之一。它提供了大量的公共镜像供用户使用。你可以在 Docker Hub 上找到官方的基础镜像,也可以找到其他用户分享的各种应用和工具的镜像。

  1. 国内云服务商提供的公共仓库

由于 Docker Hub 在国内访问速度较慢,一些国内的云服务商提供了类似于 Docker Hub 的公开服务。例如,网易云镜像服务、DaoCloud 镜像服务、阿里云镜像服务等,都提供了稳定、快速的公共镜像仓库。

私有镜像仓库

  1. 为什么搭建私有镜像仓库?

虽然公共仓库提供了大量的镜像供用户使用,但在一些特定的场景下,企业或个人可能希望搭建自己的私有 Docker Registry。主要原因包括:

  • 安全性: 一些敏感的应用或数据不适合存储在公共仓库中,因此需要一个受控的、私有的存储环境。

  • 带宽控制: 在一些特殊网络环境下,使用公共仓库的下载速度可能不理想,搭建私有仓库可以更好地控制镜像的拉取速度。

  • 定制需求: 企业可能有自己特殊的镜像需求,需要在内部构建和管理特定版本的镜像。

  1. Docker Registry

Docker Registry 是 Docker 提供的官方仓库服务,支持用户搭建自己的私有镜像仓库。你可以将 Docker Registry 部署在自己的服务器上,并通过简单的配置来实现私有仓库的搭建。

搭建私有 Docker Registry 的详细步骤可以参考官方文档:Docker Registry 部署。

  1. 私有 Docker Registry 在企业中的应用

在企业内部,私有 Docker Registry 的应用非常广泛。它不仅为企业提供了更加安全和可控的镜像管理环境,还支持企业内部的持续集成和持续部署流程。通过搭建私有仓库,企业可以更好地管理和定制自己的镜像,确保应用的稳定和安全运行。

总的来说,选择使用公共仓库还是搭建私有仓库,取决于具体的使用场景和需求。在实际应用中,有时候也会采用公共仓库和私有仓库结合的方式,根据实际需求灵活选择。

一、搭建 Docker 镜像仓库

在 Docker 生态系统中,镜像仓库(Docker Registry)用于存储和管理 Docker 镜像。你可以选择使用公共仓库,比如 Docker Hub,也可以搭建私有的 Docker Registry,方便自己团队或组织内部使用。

官网地址:https://hub.docker.com/_/registry。

1.1 搭建简化版的镜像仓库

Docker 官方提供了一个简化版的 Docker Registry 镜像,具备完整的仓库管理功能,但缺乏图形化界面。下面是一个简单的搭建命令:

docker run -d \
    --restart=always \
    --name registry \
    -p 5000:5000 \
    -v registry-data:/var/lib/registry \
    registry

这个命令中的参数说明:

  • -d: 后台运行容器。
  • --restart=always: 设置容器总是在 Docker 启动时重新启动。
  • --name registry: 为容器指定一个名字,这里是 registry
  • -p 5000:5000: 将主机的 5000 端口映射到容器的 5000 端口。
  • -v registry-data:/var/lib/registry: 挂载数据卷 registry-data 到容器内的 /var/lib/registry 目录,用于持久化存储镜像数据。
  • registry: 使用的镜像名称。

通过上述命令,就成功运行了一个 Docker Registry 服务。访问 http://主机IP:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像。

1.2 搭建带有图形化界面的镜像仓库

有一些第三方工具可以为 Docker Registry 提供图形化界面,使得镜像的管理更加直观。一个常用的工具是 docker-registry-ui。通过 Docker Compose,我们可以很容易地搭建一个带有图形化界面的 Docker Registry 服务。以下是一个简单的 docker-compose.yml 文件:

version: '3.0'
services:
  registry:
    image: registry
    volumes:
      - ./registry-data:/var/lib/registry
  ui:
    image: joxit/docker-registry-ui:static
    ports:
      - 8080:80
    environment:
      - REGISTRY_TITLE=私有仓库
      - REGISTRY_URL=http://registry:5000
    depends_on:
      - registry

这个 docker-compose.yml 文件包括两个服务:registryui。其中,registry 使用官方 Docker Registry 镜像,并挂载数据卷;ui 使用 docker-registry-ui 镜像,并配置了环境变量,包括私有仓库的标题和地址。

1.3 配置 Docker 信任地址

因为私服采用的是 HTTP 协议,默认不被 Docker 信任,所以需要进行配置。编辑 Docker 守护进程配置文件:

# 打开要修改的文件
vim /etc/docker/daemon.json

添加如下内容:

"insecure-registries": ["http://主机IP:8080"]

保存并退出。重载 Docker 守护进程配置并重启 Docker:

systemctl daemon-reload
systemctl restart docker

通过以上步骤,就成功搭建了一个简化版的 Docker 镜像仓库,并且还可以使用 Docker Compose 部署一个带有图形化界面的 Docker Registry。

搭建docker镜像仓库,微服务,docker 容器,docker,容器
然后通过浏览器访问:http://主机IP:8080/,就可以看到私有镜像查看的 UI 界面了。

搭建docker镜像仓库,微服务,docker 容器,docker,容器

二、向私有镜像仓库推送和拉取镜像

2.1 推送本地镜像到私有仓库

  1. 例如,现在要把本地的镜像 nginx,重新tagnginx:1.0,注意,名称前缀为私有仓库的地址:192.168.150.101:8080/
docker tag nginx:latest 192.168.211.128:8080/nginx:1.0

其含义是给本地镜像打上一个新标签,使其适应私有仓库地址。

搭建docker镜像仓库,微服务,docker 容器,docker,容器

  1. 然后再把它推送到私有仓库:
docker push 192.168.211.128:8080/nginx:1.0

其含义是将标签过的镜像推送到私有仓库。

搭建docker镜像仓库,微服务,docker 容器,docker,容器

  1. 推送成功后,就可以在私有仓库的图形化界面中看到相应的镜像。

搭建docker镜像仓库,微服务,docker 容器,docker,容器

2.2 拉取私有仓库中的镜像

拉取镜像是将远程仓库中的镜像下载到本地使用的过程。使用 Docker 命令可以很方便地从私有仓库中拉取镜像。
推送本地镜像到私有仓库的过程已经很详细了。接下来,我们来看一下拉取镜像的步骤。

现在私有仓库中有一个镜像 nginx:1.0,我们可以通过以下命令将其拉取到本地:

docker pull 192.168.211.128:8080/nginx:1.0

这个命令的含义是从指定的私有仓库地址拉取标签为 1.0nginx 镜像。

拉取成功后,就可以在本地使用这个镜像。

例如,拉取私有仓库镜像的整个步骤:

  1. 首先删除本地的nginx镜像
    搭建docker镜像仓库,微服务,docker 容器,docker,容器

  2. 从私有仓库拉取镜像

可以直接在私有仓库的 UI 界面直接复制拉取镜像的命令:
搭建docker镜像仓库,微服务,docker 容器,docker,容器
执行在终端中执行这个命令,发现拉取成功了:
搭建docker镜像仓库,微服务,docker 容器,docker,容器文章来源地址https://www.toymoban.com/news/detail-723064.html

到了这里,关于【Docker】搭建 Docker 镜像仓库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • [Docker]二.Docker 镜像,仓库,容器介绍以及详解

    [Docker]二.Docker 镜像,仓库,容器介绍以及详解

    通俗来讲:镜像相当于VM虚拟机中的ios文件,容器相当于虚拟机系统,仓库相当于系统中的进程或者执行文件,容器是通过镜像创建的 Docker 镜像就是一个 Linux 的文件系统( Root FileSystem ),这个文件系统里面包含可以运行在 Linux 内核的程序以及相应的数据,这里要强调一下镜像的两

    2024年02月03日
    浏览(10)
  • Docker容器的官方镜像仓库

    Docker容器的官方镜像仓库

    镜像仓库分类 公有仓库 私有仓库 官方镜像仓库属于公有仓库 网址: hub.docker.com        网站名称:dockerhub 注册邮箱 创建仓库 创建自己的仓库 登录仓库  web界面登录 linux命令行登录  直接docker login 输入用户名和密码 这个自己创建的存储库一般只有pull时才会登录 push上传

    2024年02月08日
    浏览(13)
  • 什么是docker(docker客户端、镜像、容器、仓库)

    Docker 是一个开源的容器化平台,它可以让开发者打包应用程序及其依赖项成为一个轻量级、可移植的容器,然后在任何环境中运行。Docker 容器将应用程序及其依赖项打包到一个标准化单元中,包括代码、运行时环境、系统工具、系统库等,确保应用程序在不同的环境中具有

    2024年04月10日
    浏览(10)
  • 一文搞清楚 Docker 镜像、容器、仓库

    一文搞清楚 Docker 镜像、容器、仓库

    博主介绍 : ✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌ Java知识图谱点击链接: 体系化学习Java(Java面试专题) 💕💕 感兴趣的同学可以收藏关注下 , 不然下次找不到哟 💕💕 Docker 镜像、容器、仓库是 Docker 技术中的三个重要概念

    2024年02月03日
    浏览(11)
  • Docker 将容器打包成镜像&推送镜像到仓库

    Docker 将容器打包成镜像&推送镜像到仓库

    示例: 1.登录仓库进行身份验证 2.将本地镜像重命名与仓库格式相匹配 3.推送镜像到仓库

    2024年02月09日
    浏览(12)
  • Docker镜像、容器、仓库及数据管理

    使用docker pull命令,使用docker search命令可以搜索远端仓库中共享的镜像。 使用docker run [OPTIONS] IMAGE [COMMAND] [ARG...]命令,如:docker run --name ubuntu_test --rm -it ubuntu:test /bin/bash,其中选项如下: --name 指定容器名。 --rm 表示容器退出后将其删除。 -t选项让Docker分配一个伪终端并绑定

    2024年02月09日
    浏览(11)
  • 【Docker】搭建 Docker 镜像仓库

    【Docker】搭建 Docker 镜像仓库

    在 Docker 生态系统中,镜像仓库(Docker Registry)扮演着关键的角色,用于存储和分享 Docker 镜像。镜像仓库有公共的和私有的两种形式,每种形式都有其特定的应用场景。 Docker Hub Docker Hub 是 Docker 公共仓库,是最大的 Docker 镜像仓库之一。它提供了大量的公共镜像供用户使用。

    2024年02月07日
    浏览(6)
  • 面向对象视角下,理解Docker 镜像容器和仓库

    面向对象视角下,理解Docker 镜像容器和仓库

    今天带大家在面向对象的视角下,理解镜像,容器和仓库到底是什么关系,相信大家读完本文一定会有更深刻的理解。 注:面向对象语言有很多,本文基于Java语言进行描述 首先创建一个类,用来模拟 Docker 中的一个镜像 tomcat8,其中暴露了一个获取版本号和启动的方法 创建

    2024年01月19日
    浏览(14)
  • 【微服务实战之Docker容器】第四章-【微服务实战之Docker容器】第三章-镜像仓库

    【微服务实战之Docker容器】第四章-【微服务实战之Docker容器】第三章-镜像仓库

    【微服务实战之Docker容器】第一章-下载及安装 Docker挂载主机目录访问如果出现cannot open directory .: Permission denied解决办法: 在挂载目录后多加一个–privileged=true参数即可 如果是CentOS7安全模块会比之前系统版本加强,不安全的会先禁止,所以目录挂载的情况被默认为不安全的

    2024年02月07日
    浏览(13)
  • Docker三大核心概念(镜像、容器和仓库)与虚拟化

    Docker三大核心概念(镜像、容器和仓库)与虚拟化

    目录 1. Docker是什么 2. Docker与虚拟化 3. Docker虚拟化的好处 4. Docker核心概念    4.1.镜像    4.2.容器    4.3.仓库 5. CentOS7 安装docker(在线方式)    5.1.内核版本信息检查      5.2 卸载可能存在的旧版本      5.3 安装必要的系统工具    5.4 添加docker-ce安装源    5.5 更新yum缓存

    2023年04月17日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包