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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> docker仓库(未完) -> 正文阅读

[系统运维]docker仓库(未完)

一、docker仓库

1.docker仓库简介

Docker 仓库是用来包含镜像的位置,Docker提供一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。
Docker运行中使用的默认仓库是 Docker Hub 公共仓库。

2.docker hub

在这里插入图片描述
docker search 应用,可以看到该应用的官方仓库在哪里:
比如:docker info
在这里插入图片描述

3.在官方注册账号并建立docker仓库

首先在https://hub.docker.com/网站注册一个账号
在docker hub上新建一个公共仓库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
做完上述操作,刷新一下该页面,就能得到如下界面。

在这里插入图片描述
并且在客户端也能搜得到:
在这里插入图片描述

4.docker hub帐号的注销

docker logout #注销帐号
在这里插入图片描述
注意:login一次就好,上传的时候也只需要在login时认证一次,注销后需要重新认证。

5.docker hub镜像的删除

在这里插入图片描述

二、Registry 工作原理

一次docker pull 或 push背后发生的事情:
在这里插入图片描述
Docker Registry有三个角色,分别是index、registry和registry client。
(1)index
负责并维护有关用户帐户、镜像的校验以及公共命名空间的信息。
Web UI
元数据存储
认证服务
符号化
(2)registry
是镜像和图表的仓库,它不具有本地数据库以及不提供用户认证,通过Index Auth service的Token的方式进行认证。
(3)Registry Client
Docker充当registry客户端来维护推送和拉取,以及客户端的授权。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、镜像加速器

从docker hub上下载镜像的速度太慢,需要配置镜像加速器,这里以阿里云为例:(需要提前注册阿里云帐号)

整体操作思路如下:
配置docker daemon文件:
vim /etc/docker/daemon.json
{
“registry-mirrors”: [“阿里云加速器地址”]
}
重载docker服务:
systemctl daemon-reload
systemctl restart docker

(1)获取阿里云加速器地址
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里获得了阿里云的镜像加速器地址。

(2)修改daemon配置文件</etc/docker/daemon.json>来使用加速器

vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://t5ajcuue.mirror.aliyuncs.com"]
}

(3)导入配置并重启服务

systemctl daemon-reload                 #重新导入daemon配置
 
systemctl restart docker                #重启docker

docker info       #查看docker信息

在这里插入图片描述
测试:拉取zabbix镜像 明显感觉速度快很多。

四、搭建私有仓库

1.初级搭建

docker hub虽然方便,但是还是有限制
需要internet连接,速度慢
所有人都可以访问
由于安全原因企业不允许将镜像放到外网
好消息是docker公司已经将registry开源,我们可以快速构建企业私有仓库

具体搭建步骤如下:
(1)下载registry镜像
docker pull registry
在这里插入图片描述
(2)运行registry容器
在这里插入图片描述

docker run -d -p 5000:5000 --restart=always --name registry registry:latest 
# -d 后台运行; -p 宿主机端口:容器端口; --restart=always 容器随docker自启动; --name 容器名称

在这里插入图片描述
(3)上传镜像到本地仓库
本地镜像在命名时需要加上仓库的ip和端口

docker tag nginx:latest localhost:5000/nginx:latest
docker push localhost:5000/nginx:latest
docker tag : 标记本地镜像,将其归入某一仓库。
示例:将镜像ubuntu:15.10标记为 runoob/ubuntu:v3 镜像: docker tag ubuntu:15.10 runoob/ubuntu:v3

docker push : 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库
示例:上传本地镜像myapache:v1到镜像仓库中:docker push myapache:v1

在这里插入图片描述
上传后再次检查,发现已经上传到私有仓库
在这里插入图片描述

2.docker私有仓库的优化

默认情况下私有仓库不需通过认证即可操作,因此很不安全,所以需要对私有仓库进行加密。
具体操作步骤如下:

(1)生成证书(域名westos.org要求在主机上有解析)

生成密钥时,对openssl的版本有要求,所以需要先升级openssl

yum install -y openssl11-1.1.1k-2.el7.x86_64.rpm  openssl11-libs-1.1.1k-2.el7.x86_64.rpm

在这里插入图片描述
在这里插入图片描述
应用证书功能到仓库:

先删除容器,并且删除容器创建的卷
在这里插入图片描述

(2)重新运行容器:

docker run -d   --restart=always   --name registry   -v /root/certs:/certs  -v /opt/registry:/var/lib/registry -e REGISTRY_HTTP_ADDR=0.0.0.0:443   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt   -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key   -p 443:443 registry
 
#具体参数如下
docker run -d   \                                    #后台运行
--restart=always \                                  #跟随docker启动
--name registry   \                                    #容器名称
-v /root/certs:/certs  \                            #目录映射关系——宿主机目录:容器内目录
-v /opt/registry:/var/lib/registry \                #目录映射
-e REGISTRY_HTTP_ADDR=0.0.0.0:443   \                #允许端口
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt   \    #证书名称及域名
-e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key   \             #证书名称及域名
-p 443:443 \                                        #端口映射——宿主机端口:容器端口
registry                                            #镜像名称

在这里插入图片描述
在这里插入图片描述
但是上传镜像时并没有验证证书,这是因为docker检测证书时会从指定路径读取证书,因此需要将证书放在指定路径下,操作步骤如下:

#创建目录
[root@server1 ~]# mkdir -p /etc/docker/certs.d/reg.westos.org      
[root@server1 ~]# cd certs/
[root@server1 certs]# ls
westos.org.crt  westos.org.key
 
#复制证书
[root@server1 certs]# cp westos.org.crt /etc/docker/certs.d/reg.westos.org/ca.crt
        #目录的名字“reg.westos.org”一定要和域名保持一致,docker引擎会自动识别
 
 
[root@server1 certs]# 
[root@server1 certs]# ll /etc/docker/certs.d/reg.westos.org/ca.crt
-rw-r--r-- 1 root root 2159 Feb 18 13:14 /etc/docker/certs.d/reg.westos.org/ca.crt

证书复制完成后,重新上传镜像。在目录</opt/registry/docker/registry>下可以看到刚才上传的镜像,目录已经不再是空的了。

在这里插入图片描述
应用认证功能到仓库:

[root@server1 ~]# docker rm -f registry                #删除registry容器
[root@server1 ~]# mkdir auth                        #创建目录,用于存储认证信息
[root@server1 ~]# yum install -y httpd-tools            #安装工具,用于生成密钥

在这里插入图片描述

创建用户并生成密钥/文件:

htpasswd -cB auth/htpasswd admin            #创建用户admin
htpasswd -B auth/htpasswd zlw                #创建用户zlw
          (再次创建用户时不要添加参数-c,否则会覆盖之前的文件,只有第一次创建用户时需要添加参数c)

在这里插入图片描述

docker run -d   --restart=always   --name registry   -v /root/certs:/certs  -v /opt/registry:/var/lib/registry -v /root/auth:/auth -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -e REGISTRY_HTTP_ADDR=0.0.0.0:443   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt   -e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key   -p 443:443 registry
 
#具体参数如下
docker run -d   \                                    #后台运行
--restart=always \                                  #跟随docker启动
--name registry   \                                    #容器名称
-v /root/certs:/certs  \                            #目录映射关系——宿主机目录:容器内目录
-v /opt/registry:/var/lib/registry   \              #目录映射
-v /root/auth:/auth    \                             #用户认证功能的目录映射
-e "REGISTRY_AUTH=htpasswd"    \                    #指定用户密码
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" 
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd         #指定用户密钥路径
-v /opt/registry:/var/lib/registry \                #目录映射
-e REGISTRY_HTTP_ADDR=0.0.0.0:443   \                #允许端口
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/westos.org.crt   \    #证书名称及域名
-e REGISTRY_HTTP_TLS_KEY=/certs/westos.org.key   \             #证书名称及域名
-p 443:443 \                                        #端口映射——宿主机端口:容器端口
registry                                            #镜像名称

在这里插入图片描述

curl -k https://reg.westos.org/v2/_catalog -u admin:westos    #查看私有仓库的镜像

在这里插入图片描述

docker tag yakexi007/game2048:latest reg.westos.org/game2048:latest    #修改镜像标签
docker push reg.westos.org/game2048:latest             #上传镜像
    88fca8ae768a: Preparing 
    6d7504772167: Preparing 
    192e9fad2abc: Preparing 
    36e9226e74f8: Preparing 
    011b303988d2: Preparing 
    no basic auth credentials

在这里插入图片描述
直接上传镜像会显示用户认证失败。因为本次启动容器时开启了用户认证功能,所以需要先登录后才能上传镜像。
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:59:52  更:2022-03-08 23:00: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/16 3:50:58-

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