首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在amd64主机平台上运行arm64 docker镜像

在amd64主机平台上运行arm64 docker镜像可以通过使用QEMU进行模拟实现。QEMU是一个开源的虚拟化工具,可以在不同的硬件平台之间进行模拟和转换。

以下是在amd64主机平台上运行arm64 docker镜像的步骤:

  1. 安装QEMU和binfmt_misc:
    • 在Ubuntu上,可以使用以下命令安装:sudo apt-get install qemu qemu-user-static binfmt-support
    • 在CentOS上,可以使用以下命令安装:sudo yum install qemu qemu-user-static binfmt-support
  • 下载arm64的docker镜像:
    • 可以从Docker Hub或其他镜像仓库下载arm64的docker镜像,例如:docker pull arm64v8/ubuntu
  • 配置binfmt_misc:
    • 运行以下命令将QEMU注册为binfmt_misc的处理器:sudo update-binfmts --enable qemu-aarch64
  • 运行arm64 docker镜像:
    • 使用以下命令在amd64主机上运行arm64 docker镜像:docker run --rm -it arm64v8/ubuntu

这样,就可以在amd64主机平台上成功运行arm64 docker镜像了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Docker多架构容器镜像构建方式

跨平台开发:如果您正在开发需要在多个平台上运行的应用程序,例如ARM和x86,您可以使用buildx构建多架构Docker镜像并在不同架构上测试应用程序。...使用多架构容器镜像的好处 使用多架构容器镜像的几个优点是: 能够在多个 CPU 架构上运行 Docker 镜像 使我们能够选择环保的CPU架构 从一种架构无缝迁移到另一种架构 使用arm64获得更好的性能并节省成本.../arm64 映像,并且 linux/amd64 是在主机上本地构建的。...---- 多架构容器镜像如何工作? 从图中我们可以看到,主机具有x86/amd64 CPU架构,在此之上,我们安装的操作系统可以是Windows或Linux。...我们可以利用 Docker pull 命令来--platform={amd64, arm64}拉取不同的 CPU 架构镜像

1.2K41
  • Docker多平台镜像构建指引

    这个推送到远程仓库的镜像如同我在前文中所述,它只是特定架构的,如果你在arm64架构系统上操作,它就是arm64架构. 如果是amd64,就是amd64架构....这与我们的预期不符,我们希望无论是在arm64或是amd64架构上,都能使用同一镜像,如同docker hub中的大多数主流镜像一样 所幸,Docker早已识别到此需求,提供了buildx工具,这个就可以实现我们的上述目标...构建多平台架构镜像 好了,完成上述步骤后,现在你可以开始构建多平台架构镜像了 sudo docker buildx build --platform linux/amd64,linux/arm64 -t...--platform linux/amd64,linux/arm64,我们指定构建linux/amd64与linux/arm64两个架构下的镜像 如果一切正常,你就可以看到构建多平台的日志输出 5....不管是amd64还是arm64,都支持构建多平台镜像.只要支持qemu相关的虚拟技术就行.

    1.7K40

    跨平台构建 Docker 镜像新姿势,x86、arm 一把梭

    交叉编译器是专门为在给定的系统平台上运行而设计的编译器,但是可以编译出另一个系统平台的可执行文件。...命令的下一代替代品,它利用 BuildKit[5] 的全部功能扩展了 docker build 的功能。 下面就来演示一下如何在短短几分钟内使用 buildx 构建出不同平台的 Docker 镜像。...现在就可以使用 buildx 构建一个支持 arm、arm64amd64 多架构的 Docker 镜像了,同时将其推送到 Docker Hub[6]: ?...背后的原理也很简单,之前已经提到过了,buildx 会通过 QEMU 和 binfmt_misc 分别为 3 个不同的 CPU 架构(arm,arm64amd64)构建 3 个不同的镜像。...MediaType: application/vnd.docker.distribution.manifest.v2+json Platform: linux/amd64 运行每一个镜像并观察输出结果

    40.4K119

    Docker】专题三:Dockerfile 相关

    常用指令 1、FROM 指定构建 Docker 镜像所使用的基础镜像 alpine:latest。 2、RUN 指定 docker build 时执行的命令。... MySQL 官方镜像指定的启动入口: ENTRYPOINT ["docker-entrypoint.sh"] 5、WORKDIR 指定容器中服务的工作目录,需要使用绝对路径。...ADD 命令会增加镜像层数。 8、VOLUME 指定主机、容器之间的映射目录。 9、ENV 指定容器所需的环境变量,key=value 形式。...:/var/run/docker.sock wagoodman/dive" dive nginx:latest 构建多架构镜像 当我们使用 AMD64 架构的镜像ARM64 架构的服务器上运行时会出现报错...1、docker manifest 方法 # 第一步:构建不同架构镜像 docker build --pull --platform=linux/amd64 -f Dockerfile -t demo:

    36430

    Apple M1 芯片目前对开发者来说未必是好事

    有用户发现,除了 AMD64架构之外,其他大多数架构都无法在 ARM 上运行。如果「强行」运行,将会大幅度提高运行成本。...并且有一部分工具和库属于开源项目,因此由此带来的维护需求增长,将成为沉重的额外负担,导致某些贡献者直接放弃为新的 Mac 平台上提供支持。...Docker 受到的影响 由于 Mac 上的 Docker 只能在虚拟机内运行,再加上用户只能对基于 ARM 架构的 Linux 进行虚拟化,意味着我们未来只能在苹果芯片版的 Mac 上运行 ARM64...目前,Docker Hub 上存在 331 万 9219 个针对 AMD64镜像,但针对 ARM64镜像只有 29076 个,占比不足 1%。再有,构建多架构 Docker 镜像还特别复杂。...尤其需要注意的是,由于生产系统通常运行 Linux/AMD64,因此你生产的二进制文件及 Docker 镜像很可能无法在开发计算机上运行

    90810

    TKEStack适配ARM架构之路

    如下图中间部分所示,命令 docker manifest inspect app:v1 查看了容器镜像 app:v1 的清单列表,得知在 linux/amd64(x86架构)平台上,app:v1 对应的容器镜像应为哈希...sha256:xxx 指向的镜像,而在 linux/arm64/v8(arm架构)平台上,则应对应哈希 sha256:yyy 指向的镜像。...01.ppt-manifest.png 对于TKEStack,只要TKEStack在构建完多架构容器镜像后,并推送重命名后的x86架构容器镜像(带amd64后缀,app-amd64:v1)跟arm架构容器镜像...(带arm64后缀,app-arm64:v1)至镜像仓库后,再生成一份不带架构后缀(app:v1)的清单列表 manifest list指向多架构镜像,就可以在用户无感知的情况下,既能实现原本x86...的机器正常拉取amd64镜像,也能让新增的arm的机器拉取到arm64镜像: 02.ppt-create-manifest.png 到此,支持多架构后最小化代码改动的目标已有了方案:通过额外引入一层清单列表

    1.9K21

    Docker入门:构建支持多系统架构的Docker镜像

    一、前言 1、本文主要内容 使用Docker Buildx构建支持AMD64、ARM、ARM64等架构的镜像并传到到Docker Hub 2、本文环境信息 环境 说明 Docker Docker CE...镜像的文本文件(默认无后缀名),包含所有我们需要用于创建Docker镜像的命令,例如:指定基础镜像、安装依赖的软件、配置环境变量、添加文件和目录、定义容器启动时运行的命令等 新建helloworld.build...参数指定构建的目标平台,例如:linux/amd64、linux/arm64或、darwin/amd64等等,通过Buildx可以连接面向不同架构的Docker节点分别构建,也可以直接将构建信息推送到Docker.../amd64,linux/arm64 架构,如需其他的可以自行追加 docker buildx build \ --platform linux/amd64,linux/arm64 \ -f helloworld.build...---ken.io OS:linux/arm64,Host:3426a278c72e,IP:172.17.0.3 6、查看镜像信息 docker buildx imagetools inspect kentalk

    1.6K20

    使用 Docker Buildx 构建多种系统架构镜像

    是否支持多架构,取决于 buildkit 的环境,如果需要 buildkit 支持多架构,需要在宿主机执行(当然这个不是必须的,按构建的需求进行控制) BuildKit 旨在为多个平台进行构建,而不仅适用于调用构建的用户碰巧运行的体系结构和操作系统...调用构建时,您可以设置--platform标志以指定构建输出的目标平台(例如linux/amd64,linux/arm64、 或 darwin/amd64)。...Docker 在 Linux 系统架构下是不支持 arm 架构镜像,因此我们可以运行一个新的容器让其支持该特性,Docker 桌面版则无需进行此项设置(mac系统)。...* docker-container mybuilder0 unix:///var/run/docker.sock running linux/amd64, linux/arm64, linux...此时查看一下 docker image 的运行情况,会发现存在一个名为 buildx_buildkit_mybuilder0 的容器在运行

    1.3K20

    在 Mac M1 等系列芯片编译和开发 WebRTC-Android 库

    在 Apple 芯片上直接通过 docker 命令创建容器的话,可能还是 arm64 架构的,这样即使拉取了 WebRTC 源码,在编译库的时候还是会提示不支持 arm64 架构,导致编译失败,这也是实际踩过坑后的经验教训...使用如下命令来创建容器: docker run --privileged -ti --rm --platform linux/amd64 ubuntu:18.04 并且通过该命令来查看对应的镜像是什么平台...: > docker inspect f9a80a55| grep Architecture "Architecture": "amd64", f9a80a55 是镜像的 id ,输出是 amd64...如果没有 --privileged 参数,输出就是 arm64 了。 WebRTC 源码编译 有了镜像之后,接下来就是常规操作,下载 depot tools 并拉取对应源码 。...,但是在 Docker 镜像里面用 Vim 来写代码太不方便。

    21110
    领券