| |
|
开发:
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私有仓库支持多架构搭建 |
一、环境说明1、服务器两台,均为amd64架构,一台可以联网(192.168.230.101),用来下载软件。一台不能联网(192.168.230.102),用来搭建私有仓库 2、操作系统:centos7.7(7.x应该均可) 3、docker:docker-ce-20.10.12-3(2022.3.8最新版,版本最好保持20,否则manifest配置不一样) 二、安装步骤docker联网安装(101)1、101上安装docker 清理存在的 docker 软件
安装docker 依赖
下载 docker 安装所需的 repo 文件
安装 docker
启动 docker
设置 开机自启动
查看 docker 是否启动成功 docker version出现如下界面则表示成功启动
下载docker离线安装包至/tmp/docker目录下 3、执行 4、在101上配置国内镜像源
保存后执行
5、在101上下载registry镜像
6、在101将registry打包镜像
7、将 docker离线安装及私有仓库创建离线yum源配置(102配置,如已有其他yum源忽略该步骤)使用iso镜像作为离线yun源,执行命令
将 创建
保存后执行命令 移除当前存在的docker环境
安装docker依赖项
离线安装docker(102)1、在102解压docker.tar,进入docker目录内执行命令进行安装(确保102没有安装过docker)
2、启动docker及开机自启(102)
执行命令 docker version查看是否启动成功 3、102进入
私有仓库启动1、102启动registry容器(即私有仓库) 默认情况下,仓库会被创建在容器的
注意 启动后通过docker ps -a看到如下内容即可 通过命令 2、测试私有仓库可用性 任意的docker-cli端(任何需要和私有仓库打交道的服务器都需要配置)修改配置文件
注:私有仓库未使用https,而docker客户端执行的是https协议,会导致客户端无法与私有仓库通信,因此需要添加以上配置。 然后执行
在101测试推送镜像至私有仓库
也可以到registry容器内查看是否有文件 为后续测试多cpu架构镜像创建,此时再拉取一个arm64架构的镜像,推送到私有仓库中,具体操作如下
多cpu架构镜像创建一些说明: docker每一个镜像包含了一个这个文件包含了有关于镜像信息,如层、大小和摘要。 docker manifest命令还向用户提供附加信息,比如构建镜像的操作系统和体系结构。 而manifest list是一个镜像清单列表,用于存放多个不同os/arch的镜像信息。我们主要用到manifest的目的,其实还是多用于存放不容的os/arch信息,也就是方便我们在不同的CPU架构(arm或者x86)或者操作系统中,通过一个镜像名称拉取对应架构或者操作系统的镜像,这个尤其是在K8S中,对于异构CPU的服务器中的镜像显得尤为有效。 需要注意的是,manifest文件仅仅是针对于已经在仓库中的镜像!!! 换句话说,就是这个镜像是刚从仓库中pull下来的!如果这个镜像是自己build的,需要先push到仓库中,否则,这个镜像是没有manifest文件的!!同样的,如果你pull了一个镜像,tag了一下,再去看这个manifest文件,也是没有的,因为tag后的镜像不在镜像仓库中。 1、创建一个自定义命名的镜像名的 Manifest list,然后用该列表关联仓库里面的两个不同架构的镜像(注意这里就是说私有仓库中已有这两个镜像,需要在不同架构平台构建镜像后push到仓库中,前边已经push到仓库中了)
注意带上
A地址是manifest list地址,也就是最后统一了架构后的镜像地址,该地址在仓库中可有可无;B、C则是已经在仓库中有的镜像地址!!此外,这里面还多了一个 --insecure指令,这个指令主要是用来方式你的远端仓库没有https证书的问题,最好加上,否则可能会报错 如果A地址已经存在,或者说A=B或者A=C,进一步的,也就是你并不想创建一个新的manifest list镜像地址,而是想用已有的镜像地址,那么可以参考这个命令
这个命令通过增加–amend选项,将x86的架构信息增加到了arm64架构中 2、声明不同架构镜像对应的操作系统和cpu架构类型,其中x86_64需要用amd64来指定(可以执行也可忽略)
3、将manifest推送到私用仓库中
完成之后边可以通过 通过这几条命令可以看出来多架构镜像只是一个引用,根据客户端的架构来选择其中声明好的镜像。 参考链接https://blog.csdn.net/sullivan_jia/article/details/117520304 docker manifest 使用实战 https://www.cnblogs.com/rucnevermore/p/12031527.html docker多架构镜像构建 https://www.cnblogs.com/nhdlb/p/15233410.html Docker:使用x86平台Docker 拉取 arm版镜像 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 2:36:33- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |