部署
foliant
利用httpd做远程yum源的配置
利用yum做多个组件源
linux环境上传github代码
vncserver可视化
centos7可视化
metabase安装
linux图形化安装
vm使用桥接连接网络
ElasticSearch使用
nginx多级构建
docker多架构构建镜像
svn和gitlab-ce迁移
代理搭建
GNS3部署使用
sftp搭建
Jenkins部署
yum源配置
js学习
通过一个公网ip联通一个vpc下所有服务
frp远程搭建
html语法
win下本地非80端口dns域名解析配置
利用nginx实现html跨域请求第三方接口
搭建自己的邮箱系统
docker构建mrdoc
内网穿透-利用nps实现本地web服务在公网访问
ipsec
-
+
首页
docker多架构构建镜像
## docker多架构构建镜像 - what: docker多架构构建镜像 - where: centos7 x86 arm64 - when: 2022-2-14 - who: jiaorongtao - why: 记录 - how: ### 1.安装docker ```bash curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun ``` ### 2.安装docker-compose ```bash curl -L "https://github.com/docker/compose/releases/download/1.28.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ``` ### 3.安装常用依赖 ```bash yum install vim wget git curl lrzsz -y ``` ### 4.开启实验特性 cat /etc/docker/daemon.json ```bash { "registry-mirrors": [ "https://mirror.baidubce.com", "https://docker.mirrors.ustc.edu.cn/" ], "experimental": true } ``` 重加载服务配置并重启docker ```bash #重新加载服务的配置文件 systemctl daemon-reload #重启docker systemctl restart docker #查看docker状态 systemctl status docker #测试manifest是否开启 docker manifest #查看docker是否开启experimental功能 docker version 或docker system info [root@ecs-40a8 ~]# docker version Client: Docker Engine - Community Version: 20.10.12 API version: 1.41 Go version: go1.16.12 Git commit: e91ed57 Built: Mon Dec 13 11:45:00 2021 OS/Arch: linux/arm64 Context: default Experimental: true Server: Docker Engine - Community Engine: Version: 20.10.12 API version: 1.41 (minimum version 1.12) Go version: go1.16.12 Git commit: 459d0df Built: Mon Dec 13 11:43:46 2021 OS/Arch: linux/arm64 Experimental: true containerd: Version: 1.4.12 GitCommit: 7b11cfaabd73bb80907dd23182b9347b4245eb5d runc: Version: 1.0.2 GitCommit: v1.0.2-0-g52b36a2 docker-init: Version: 0.19.0 GitCommit: de40ad0 ``` ### 5.制作多架构镜像 以自己为例,dockerhub仓库为jrt101,现在想制作mrdoc:v4的多架构镜像 分别在x86和arm环境构建mrdoc:v4镜像,制作完后没问题,分别修改tag ```dockerfile docker tag b0e1fd31e99e jrt101/mrdoc-x86_64:v4 docker tag 978af99fd151 jrt101/mrdoc-arm64:v4 ``` 分别在两个环境分别将两个镜像上传至dockerhub仓库 ```bash docker login docker push jrt101/mrdoc-x86_64:v4 docker push jrt101/mrdoc-arm64:v4 ``` 制作多架构镜像 ```bash # 创建一个新的manifest,指定多架构镜像的名称,和具体的不同架构的镜像名称 [root@ecs-40a8 doc]# docker manifest create --insecure jrt101/mrdoc:v4 jrt101/mrdoc-x86_64:v4 jrt101/mrdoc-arm64:v4 Created manifest list docker.io/jrt101/mrdoc:v4 #annotate 加注释 # 声明不同架构镜像对应的操作系统和cpu架构类型,其中x86_64需要用amd64来指定 [root@ecs-40a8 doc]# docker manifest annotate jrt101/mrdoc:v4 jrt101/mrdoc-x86_64:v4 --os linux --arch amd64 [root@ecs-40a8 doc]# docker manifest annotate jrt101/mrdoc:v4 jrt101/mrdoc-arm64:v4 --os linux --arch arm64 # 将manifest从本地推送到私用仓库中 没有大小 是一个软连接 [root@ecs-40a8 doc]# docker manifest push --insecure jrt101/mrdoc:v4 Pushed ref docker.io/jrt101/mrdoc@sha256:a6318505ea1b7882f212c5e1a55352347f57dca0e6dd1cc0c67c60948c1674a6 with digest: sha256:a6318505ea1b7882f212c5e1a55352347f57dca0e6dd1cc0c67c60948c1674a6 Pushed ref docker.io/jrt101/mrdoc@sha256:b068bbaf8a7d01ab20d77d8c3d9aa4b9f6b85ad8a189b2d1a0e0018906160b55 with digest: sha256:b068bbaf8a7d01ab20d77d8c3d9aa4b9f6b85ad8a189b2d1a0e0018906160b55 sha256:c3f9aa7e18f980133a42cb8880232d9df5bce1e5cc0ffd618c3e347d0f7b8442 [root@ecs-40a8 doc]# echo $? 0 [root@ecs-40a8 doc]# ```
JRT
2022年2月14日 10:24
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码