概要

docker hub 使用非常方便,而且上面有大量的镜像可以使用。 但是,每次都远程下载镜像速度非常慢,如果能在本地做一个 docker 的仓库,多人协作开发的时候更新效率就会提高很多。

所以,下面我们尝试搭建自己的 docker 仓库。

本地私有仓库

首先搭建一个只有自己本机能够使用的 docker 仓库,目的是为了尝试私有仓库的最简化方法。

  1. 安装 registry

    $ docker pull registry
    Using default tag: latest
    latest: Pulling from library/registry
    709515475419: Pull complete
    df6e278d8f96: Pull complete
    4b0b08c1b8f7: Pull complete
    80119f43a01e: Pull complete
    acf34ba23c50: Pull complete
    Digest: sha256:412e3b6494f623a9f03f7f9f8b8118844deaecfea19e3a5f1ce54eed4f400296
    Status: Downloaded newer image for registry:latest
  2. 运行本地的 registry

    docker run -d -p 5000:5000 --restart=always --name registry \
    -v /your/path/to/registry-images:/var/lib/registry \
    registry:latest
  3. 将某个已有的 image 存入 registry

    docker tag jdeathe/centos-ssh:centos-7 localhost:5000/ssh:7
    docker push localhost:5000/ssh:7
    • jdeathe/centos-ssh:centos-7 是已有的 image
    • localhost:5000/ssh:7 是准备提交到 本地 registry 的 image,这里 localhost:5000 是本地 registry 的
  4. pull 已经提交到 registry 的镜像

    docker pull localhost:5000/ssh:7

局域网私有仓库

如上,搭建一个只有本机访问的私有镜像非常简单,不用对已有的 docker 服务进行任何配置。 如果要搭建一个能在局域网内访问的 docker 仓库,就需要对 docker 服务进行一些简单的配置。

首先,在主机 A 上:

  1. 安装 registry 镜像(同上)

  2. 将某个 image 导入 registry,这里使用主机 A 的 IP 而不是 localhost

    docker tag jdeathe/centos-ssh:centos-7 192.168.0.111:5000/ssh:7
    docker push 192.168.0.111:5000/ssh:7
  3. 修改主机 A 的 docker 配置(/etc/docker/daemon.json 文件不存在则直接创建)

    {
    "insecure-registries": ["192.168.0.111:5000"]
    }
  4. 重启 docker 服务

    sudo systemctl restart docker

在同一局域网中的另一台主机 B 上

  1. 修改 docker 配置(/etc/docker/daemon.json 文件不存在则直接创建),使 docker daemon 能连上私有的 registry

    {
    "registry-mirrors": ["192.168.0.111:5000"],
    "insecure-registries": ["192.168.0.111:5000"]
    }
  2. 重启 docker 服务

    sudo systemctl restart docker
  3. 下载主机 A 中仓库的镜像,在局域网中速度非常快,以后开发过程中做部署测试就非常方便了。

    docker pull 192.168.0.111:5000/ssh:7

总结

上面只是简单的搭建了私有仓库,主要用在开发和测试环境中,如果要在生产环境中搭建 docker 私有仓库的话, 就不能使用上面 insercure-registry 的方式,需要配置 tls 的证书和认证,确保私有仓库的安全性。

docker 私有仓库简易搭建的更多相关文章

  1. docker学习------docker私有仓库的搭建

    192.168.138.102:23451.私有仓库的搭建(docker pull registry),拉取最新的镜像 2.查看拉取的仓库镜像(docker images) 3.启用registry镜 ...

  2. Docker私有仓库Registry 搭建

    1. 关于Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候,我们的使用场景需要我们拥有一个私有 ...

  3. docker私有仓库的搭建

    Docker搭建本地私有仓库的详细步骤 Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库.使用私有仓库有许多优点:一.节省网络带宽,针对于每个镜像,不用每个人都 ...

  4. docker私有仓库操作(搭建、运行、添加、删除)

    目录 运行私有仓库 TIPS: 上传 把镜像放入私有仓库 验证 查看 TIPS: 垃圾回收 问题排查 参考:https://yeasy.gitbooks.io/docker_practice/cont ...

  5. Docker私有仓库的搭建与使用

    目录 Docker搭建私有仓库 一.搭建registry私有仓库 1.拉取私有仓库registry镜像 2.启动私有仓库容器 3.修改deamon.json 4.重启docker 5.启动regist ...

  6. 微服务探索之路03篇-docker私有仓库Harbor搭建+Kubernetes(k8s)部署私有仓库的镜像

    ❝ 目录: 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernet ...

  7. Docker私有仓库registry的搭建及使用

    前言 由于Docker Hub公共仓库很多时候使用这并不是很方便,大分部因为网络的问题可能拉取的时候会很慢或者拉取不到,所以搭建一个本地的私有仓库. 准备 由于此篇文章是在Kubernetes集群安装 ...

  8. 一步步搭建docker私有仓库并从私有仓库中下载镜像

    一步步搭建docker私有仓库 #下载镜像 docker pull registry#查看镜像 docker images #运行私有仓库,指定端口和数据卷 docker run -d -p : -v ...

  9. 搭建docker私有仓库

    保存镜像的地方成为仓库(registry).目前有2种仓库:公共仓库和私有仓库. 最方便的是使用公共仓库上传和下载镜像,下载不需要注册,上传需要到公共仓库注册.公共仓库网站:https://hub.d ...

随机推荐

  1. MySQL系列详解十:MySQL多源复制演示-技术流ken

    前言 多源复制即多主一从结构,多个主服务器端的数据都会同步到后端一个从服务器上面.至于为什么要做多源复制下面的总结很到位. 1.灾备作用:将各个库汇总在一起,就算是其他库都挂了(整个机房都无法连接了) ...

  2. 第一册:lesson twenty-one.

    原文:Which book? A:Give me a book please,B. B:Which book? This one? A:No,not that one. The red one. B: ...

  3. 用Vue.js搭建一个小说阅读网站

    目录 1.简介 2.如何使用vue.js 3.部署api服务器 4.vue.js路由配置 5.实现页面加载数据 6.测试vue项目 7.在正式环境部署 8.Vue前端代码下载 1.简介 这是一个使用v ...

  4. C# Redis安装 使用教程

    前言:lz自打工作以来第一次遇到电脑问题需要重装系统,全盘格式化.打击是沉痛的.特别伤.  然后需要重新在本地部署 redis.这是写这篇博客的原因.希望对大家有所帮助,安装资源和引用DLL可以引用 ...

  5. mysql常用操作小节

    比如要将表user 中的字段 username修改为 name: ); 其他关于表字段信息的修改: 1.添加字段:给表 user 添加字段 password 在 id 后面; ) NOT NULL A ...

  6. MyEclipse中jsp编码设置

    window->preference->Myeclipse->files and editors->jsp,设置编码为utf-8 2.window->preference ...

  7. Web Worker 初探

    什么是Web Worker? Web Worker 是Html5 提出的能够在后台运行javascript的对象,独立于其他脚本,不会影响页面的性能,也不会影响你继续对于页面进行操作.通俗点讲,就是后 ...

  8. 学会JavaScript函数式编程(第1部分)

    摘要: JS函数式编程入门. 原文:学会使用函数式编程的程序员(第1部分) 作者:前端小智 Fundebug经授权转载,版权归原作者所有. 在这篇由多部分组成的文章中,接下来将介绍函数式编程的一些概念 ...

  9. chartControl ViewType.Bar 用法测试

    使用方法 一. Datatable : chartControl1.Series.Clear(); DataTable dt = new DataTable(); dt.Columns.Add(&qu ...

  10. vue+vuecli+webpack中使用mockjs模拟后端数据

    前言 使用mockjs可以事先模拟数据,前提是和后端约定好了数据接口,怎样的数据.使用mock就可以生成你要的数据了,从而实现开发时前后端分离. 其主要功能是: 基于数据模板生成模拟数据. 基于HTM ...