IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 玩会基于registry的私有仓库 -> 正文阅读

[系统运维]玩会基于registry的私有仓库

目标:

1、理解概念。
2、学会搭建使用方法。


内容:

1、为什么用它?

公司服务器大部分都是私网,为了安全和方便可以搭建私有仓库,而不用完全手动的去导入导出镜像,因为是局域网拉取速度非常快,可以节省带宽和大量时间。 有时候使用 Docker Hub 这样的公共仓库可能不方便(隐私文件),用户可以创建一个本地仓库供私人使用。

2、是什么?

docker-registry是官方提供的工具,可以用于构建私有的镜像仓库。

一般情况下,不论是通过commit容器得到的镜像,或者是用dockerfile 制作的镜像,如果需要将镜像保存,可以使用我们之前提到的导出导入命令(save -o ; load -i)。导出的包,然后再传给其他dockerHost,这种方法也是可行的。

但往往在公司会有大量的镜像,而且不仅仅是单台的dockerHost。我们迫切需要有一个本地的共用的仓库,来实现多台dockerHost直接拉取镜像而不用手动的将镜像传来传去,之前的DockerHub可以帮助我们解决这个问题,当然前提需要申请一个DockerHub的账号,创建一个仓库。但这种方法需要消耗我们的带宽,因为是通过网络传输,既然是网络传输,就需要消耗一定的时间。

Registry仓库,是通过一个容器给我们提供的服务,是比较简易的私有仓库,以后在企业中还会有功能更加完善的Harbor仓库。

registry是官方提供的工具,可以用于构建私有的镜像仓库。你可以通过获取官方 registry 镜像来运行。

案例

注意:我们使用的是registry:2版本,还有一个registry镜像,这两个没有什么大的区别。registry: 是用Python语言写的,registry:2使用Go 语言写的,理论上来说,registry:2这个版本运行更快些。

搭建基于registry的私有仓库

1)用docker容器运行registry私有仓库服务。

注:registry是官方打包好的服务,端口为5000,就像其他虚拟出来的web服务一样

命令:
docker pull registry:2
在这里插入图片描述

2)运行私有仓库服务

创建数据卷目录:
mkdir /registry

执行命令运行容器:
docker run -itd --name registry --restart=always -p 5000:5000 -v /registry:/var/lib/registry registry:2

释义:
-v: 挂载目录。 宿主机的目录(如果没有此目录会自动创建):容器内的目录。(数据卷:实现容器与宿主机之间的共享,通过一个目录"卷")

–restart=always:随着docker服务的启动而启动此容器

3)镜像重命名(要上传的镜像名需要注明私仓的ip)

因为上传或下载镜像的时候,需要将镜像的名称直接重命名,要注明它私有仓库的IP地址:暴露端口。否则将识别不到仓库而上传或下载失败。

格式为:docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]

命令:
docker tag nginx:latest 192.168.100.205:5000/nginx

4)编辑docker配置文件(因为默认是拉取docker官方的镜像,需要重新指定)

#初次上传命令:
docker push 192.168.100.205:5000/nginx #上传私有仓库会报错

#The push refers to repository [192.168.100.205:5000/nginx]
#Get https://192.168.100.205:5000/v2/: http: server gave HTTP response to HTTPS client

解决:

因为docker默认是从dockehub上下载镜像的,需要在本地指定一下私有仓库的IP加端口,这是因为 Docker默认不允许非HTTPS 方式推送镜像。 如果没做这一步,会报HTTPS的错。

编辑docker的配置文件,指定私有仓库地址

vim /usr/lib/systemd/system/docker.service

[Service]
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.100.205:5000

#修改完成之后重新加载docker和重启
systemctl daemon-reload
systemctl restart docker

#再次上传测试
docker push 192.168.100.205:5000/nginx

5)其他dockerhost上传私有仓库

这里注意,既然是私有仓库,肯定是要考虑多台DockerHost共用的情况, 如果有其他的DockerHost想要使用私有仓库,仅需要修改docker的配置文件,指定私有仓库的IP和端口即可。当然别忘了,更改过配置文件之后, daemon-reload ,restart docker服务。

修改docker配置文件

vim /usr/lib/systemd/system/docker.service

[Service]
ExecStart=/usr/bin/dockerd --insecure-registry 192.168.100.205:5000

systemctl daemon-reload
systemctl restart docker.service
docker info
看到私仓ip即成功
在这里插入图片描述


  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-11-01 11:48:49  更:2021-11-01 11:49:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 22:30:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码