笔记|M芯片MAC (arm64) docker上使用 export / import / commit 构建amd64镜像

ops/2024/11/19 5:02:43/

很简单的起因,我的东西最终需要跑在amd64上,但是因为mac的架构师arm64,所以直接构建好的代码是没办法跨平台运行的。直接在arm64上pull下来的docker镜像也都是arm64架构。
检查镜像架构:

docker inspect 8135f475e221 | grep 'Architecture'

效果如下:

运行效果
先讲一下拉取amd64镜像的方法,因为拉取的时候默认是arm64:

docker pull --platform linux/amd64 ubuntu:18.04

这里以ubuntu镜像为例子,加上参数 --platform linux/amd64 即可,效果可以看一下:
效果图

在这里插入图片描述
接着一段文字描述:用该镜像起了一个简单的容器,里面安装一下vim lsof等命令,之后用以下两个命令进行导出导入,结果新的镜像则变成了arm64:

docker export 88888888 > 1.tar
cat 1.tar | docker import - my-ubuntu:18.04

新的镜像为arm64:
在这里插入图片描述

以下为解决方法
添加前置参数 DOCKER_DEFAULT_PLATFORM=linux/amd64 示例如下:

DOCKER_DEFAULT_PLATFORM=linux/amd64 docker run -itd ubuntu:18.04 bash

然后去里面做你想做的事情,接下来是导出,和之前一致:

docker export 4956aba71840 > 1.tar

导入,需要注意:

cat 1.tar| DOCKER_DEFAULT_PLATFORM=linux/amd64 docker import - my-ubuntu:18.04

在这里插入图片描述
在这里插入图片描述
也可以尝试一下docker commit,commit命令会保留部分的元数据,但是不包括历史信息。亲测直接commit可以出amd64:
在这里插入图片描述

done.


http://www.ppmy.cn/ops/134872.html

相关文章

Qt 5.6.3 手动配置 mingw 环境

- 安装 qt 5.6.3 mingw 版 - 打开 qt creator - 找到选项 工具 - 选项- 构建和运行 - 找到 “编译器” 选项卡 ,点击 "添加" “编译器路径” 设置为 qt 安装目录下, tool 文件夹内的 g.exe 设置完成后,点击 "apply" ,使选项生…

Ubuntu24.04安装和配置Redis7.4

Ubuntu24.04安装和配置Redis7.4 #切换到root用户 sudo su -#更新源 apt update apt upgrade#安装 lsb-release、curl 和 gpg ,以便能够添加 Redis 仓库 apt install lsb-release curl gpg#导入 Redis 的 GPG 密钥 curl -fsSL https://packages.redis.io/gpg | gpg …

华纳云:数据库一般购买什么服务器好?有哪些建议

选择数据库服务器时,需要考虑数据库的类型(如关系型数据库或NoSQL数据库)、数据量、并发访问量、读写频率、数据安全性要求等因素。以下是一些通用的建议,以帮助你选择合适的数据库服务器: 硬件配置推荐: 1. CPU:数据库…

HBase理论_HBase架构组件介绍

近来有些空闲时间,正好最近也在开发HBase相关内容,借此整理一下学习和对HBase组件的架构的记录和个人感受,付出了老夫不少心血啊,主要介绍的就是HBase的架构设计以及我的拓展内容。内容如有不当或有其他理解 matirx70163.com HB…

深入探讨 .NET Core 3.0 浮点计算差异与解决方案

在 .NET Core 3.0 中,对浮点解析和格式进行了更改,以符合 IEEE 754-2008 标准。您可以在这篇文章中阅读有关这些更改的更多信息。在使用 Stimulsoft 产品时,这些更改最常表现为舍入数字和出现“负号”零。 Stimulsoft Ultimate (…

用 Python 从零开始创建神经网络(八):梯度、偏导数和链式法则

梯度、偏导数和链式法则 引言1. 偏导数2. 和的偏导数3. 乘法的偏导数4. Max 的偏导数5. 梯度(The Gradient)6. 链式法则(The Chain Rule) 引言 在我们继续编写我们的神经网络代码之前,最后两个需要解决的难题是梯度和…

Vue 与 React 前端框架差异对比及案例分析

一、设计理念 1.Vue: Vue 被设计为渐进式框架,能够自底向上逐层应用。这意味着可以将其灵活地应用于现有项目的一部分,无需对整个项目进行大规模重构。强调数据驱动视图,通过响应式数据绑定,当数据发生变化时&#x…

基于Python的仓库管理系统设计与实现

背景: 基于Python的仓库管理系统功能介绍 本仓库管理系统采用Python语言开发,利用Django框架和MySQL数据库,实现了高效、便捷的仓库管理功能。 用户管理: 支持员工和管理员角色的管理。 用户注册、登录和权限分配功能&#x…