一、Docker私有仓库

 

上一篇说了如何利用Dockerfile在已有镜像的基础上构建自己的镜像,那么如果需要让镜像在一个团队中使用,就需要一个仓库,有几种方式可以共享私有镜像。

1、将镜像上传至Docker Hub中

2、利用第三方Docker Harbor

3、创建私有镜像仓库

第一种方式需要在Docker Hub中注册一个账号,然后在本地登陆账号进行上传,但这种方式不安全,因为谁都可以共享你的镜像。不推荐。

第二种方式需要下载Docker Harbor安装,其是用于存储和分发Docker镜像的企业级Registry服务器,需要Docker compose支持。还有对用户友好的界面化操作,推荐此方式。

第三种是Docker提供了一个Registry镜像,名为docker-distribution。咱今儿来部署这种简单的。

二、利用docker-distribution构建私有仓库

1、执行安装命令

yum install docker-registry

  

2、安装完之后使用如下命令查看
rpm -ql docker-distribution

  

/etc/docker-distribution/registry/config.yml:配置文件

/var/lib/registry:本地仓库

/usr/bin/registry:主程序

/usr/lib/systemd/system/docker-distribution.service:启动程序

3、启动私有仓库

systemctl start docker-distribution.service

  

其默认监听5000端口,使用ss -tnl查看linux上端口监听情况

4、推送镜像到私有仓库

(1)使用docker tag命令对镜像重新打标签

docker tag my_nginx:latest cnode-1:5000/nginx:v1.1

  

cnode-1:5000为仓库所在地址和ip,ngixn为顶层仓库,如果不加tag,则推全部名为nginx的镜像。

(2)推送镜像

docker push cnode-1:5000/nginx:v1.1

  

5、如果出现推送失败

是因为docker默认只支持https的协议,不支持http协议,此时需要在docker配置文件/etc/docker/daemon.json将私有仓库地址标记为非安全的registry

vim /etc/docker/daemon.json

{
"registry-mirrors": ["https://kewfdyw2.mirror.aliyuncs.com"],
"insecure-registries": ["cnode-1:5000"]
}

  

更改配置文件之后需要重启docker。

再次进行推送,情况如下图:

表明已经推送成功。

6、查看仓库

需要去目录/var/lig/registry中查看,如下图:

7、在其他机器上拉取镜像

需要在docker配置文件/etc/docker/daemon.json中将私有仓库添加为非安全的。

例如我在cnode-2中需要拉取镜像

(1)首先配置/etc/docker/daemon.json,配置之后需要重启才会生效

{
"registry-mirrors": ["https://kewfdyw2.mirror.aliyuncs.com"],
"insecure-registries": ["cnode-1:5000"]
}

  

(2)然后使用命令拉取镜像

docker pull cnode-1:5000/nginx:v1.1

  

===============================

我是Liusy,一个喜欢健身的程序员。

获取更多干货以及最新消息,请关注公众号:上古伪神

如果对您有帮助,点个关注就是对我最大的支持!!!

最新文章

  1. JavaScript实现DDoS攻击原理,以及保护措施。
  2. thinkphp5命名规范
  3. mysql 随机字符的产生方法
  4. 如何处理alert、confirm、prompt对话框
  5. ACM中常用的C/C++函数
  6. os8 location authorization 错误.
  7. VC++中的头文件包含问题
  8. [Android学习笔记]设置Activity方向
  9. shell 命名管道,进程间通信
  10. ehcache-----在spring和hibernate下管理ehcache和query cache
  11. spring持久类po或者javabean为什么常常实现序列化?
  12. jquery $.fn $.fx是什么意思有什么用
  13. [多线程] 生产者消费者模型的BOOST实现
  14. Python 2.7的字典实现简化版(C语言)
  15. java validate date
  16. Linux内核分析— —操作系统是如何工作的(20135213林涵锦)
  17. 这本小书的目的是引导你进入 React 和 Webpack 的世界。他们两个都是非常有用的技术,如果同时使用他们,前端开发会更加有趣。
  18. python 实现图的深度优先和广度优先搜索
  19. Java定时器Timer的使用详解
  20. iOS隐藏状态栏

热门文章

  1. Spring3文件上传,提速你的Web开发
  2. k8s command & args
  3. NodeRED - 全局变量的使用笔记
  4. Windows下使用poetry和pyproject.toml
  5. Spring(IOC、AOP和事务)
  6. Codeforces Round #340 (Div. 2) E. XOR and Favorite Number
  7. poj3757 Training little cats
  8. C++实现邻接表
  9. C# TCP应用编程一 概述
  10. MySQL——时间、字符串、时间戳相互转换