跨平臺的ARM 和 x86 Docker 鏡像:匯編語言實驗環境搭建

一、安裝和配置 Docker

1.安裝 Docker
官網鏈接:https://www.docker.com/
以Debian(Ubuntu)系統為例:

#安裝依賴包
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release#添加 Docker 官方 GPG 密鑰
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg#設置 Docker 的 APT 源
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null#安裝 Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin#啟動 Docker 并設置開機自啟
sudo systemctl enable --now docker#驗證 Docker 是否安裝成功
sudo docker run hello-world

2.加速器配置(可選):
(1)創建或編輯 Docker 配置文件:

sudo mkdir -p /etc/docker
sudo vim /etc/docker/daemon.json

(2)添加加速器地址:
在 daemon.json 文件中添加以下內容(以毫秒鏡像等為例):

{"registry-mirrors": ["https://docker.1ms.run","docker.xuanyuan.me","https://docker.mirrors.ustc.edu.cn"]
}

阿里云:登錄阿里云容器鏡像服務,進入“鏡像加速器”頁面,獲取專屬加速器地址。

(3)重啟 Docker 服務:

sudo systemctl daemon-reload
sudo systemctl restart docker

(4)驗證加速是否生效

docker pull hello-world

如果加速器配置正確,鏡像拉取速度會明顯提升。

3.安裝 buildx 插件:
Buildx 支持為不同的平臺和架構構建鏡像,例如同時構建適用于 linux/amd64 和 linux/arm64 的鏡像。19.03版本后的docker會自帶buildx。
查看docker版本:docker --version

4.安裝 QEMU
QEMU 是一個硬件虛擬化工具,用于模擬不同架構的 CPU。
運行以下命令安裝 QEMU:

docker run --privileged --rm tonistiigi/binfmt --install all

這會安裝所有支持的 QEMU 架構,包括 ARM 和 x86。

二、構建鏡像

1.編寫 Dockerfile

# 使用基礎的 Linux 發行版鏡像
FROM ubuntu:20.04# 安裝必要的工具
RUN apt-get update && \apt-get install -y tzdata && \ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \dpkg-reconfigure --frontend noninteractive tzdataRUN apt-get install -y \build-essential \gcc \binutils \gdb \nasm \vim# 設置工作目錄
WORKDIR /workspace# 指定容器啟動時運行的命令
CMD ["/bin/bash"]

2.構建鏡像
使用 docker buildx build 命令構建鏡像,指定目標平臺為 ARM 和 x86:

docker buildx build --platform linux/arm64 -t asm-arm64:v1.0  .
docker buildx build --platform linux/amd64 -t asm-amd64:v1.0  .# 多平臺鏡像:
docker buildx build --platform linux/amd64,linux/arm64 -t asm_arm64_amd64:v1.0 .

? --platform 參數指定了目標平臺為 x86_64 和 ARM64。
? -t 參數為鏡像設置標簽。

3.運行鏡像

# 在 x86 架構上運行
docker run -it -v ~/asm/x86:/workspace --platform linux/amd64 asm-amd64:v1.0# 在 ARM 架構上運行
docker run -it -v ~/asm/arm:/workspace --platform linux/arm64 asm-arm64:v1.0

? -it:以交互模式運行容器,進入容器內部
? -v ~/asm/arm:/workspace:將~/asm/arm目錄掛載到容器的/workspace上
? 輸入exit或Ctrl D鍵退出

4.運行容器

# 查看容器
docker ps -a# 啟動容器
docker start <container_id># 連接到容器
docker exec -it <container_id> /bin/bash

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/913586.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/913586.shtml
英文地址,請注明出處:http://en.pswp.cn/news/913586.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【前端知識】HTML頁面渲染:底層原理與技術實現剖析

HTML頁面渲染&#xff1a;底層原理與技術實現剖析HTML頁面渲染&#xff1a;底層原理與技術實現剖析渲染引擎的核心工作流程深度解析渲染關鍵階段1. 解析與構建DOM&#xff08;Document Object Model&#xff09;2. 構建CSSOM&#xff08;CSS Object Model&#xff09;3. 渲染樹…

Catmull-Rom平滑多段線在奇異點處的扭曲問題(1)

Catmull-Rom在奇異點處的扭曲問題 引言 在計算機圖形學和動畫中&#xff0c;我們經常需要在已知點之間創建平滑的過渡。Catmull-Rom樣條是一種流行的插值方法&#xff0c;它以簡單直觀的方式生成經過所有控制點的平滑曲線。本文將深入探討Catmull-Rom插值的原理、實現和應用。…

SX8652IWLTRT Semtech升特超低功耗觸控芯片 12通道+I2C接口 重新定義人機交互!

SX8652IWLTRT&#xff08;Semtech&#xff09;產品解析與推廣文案一、產品定位SX8652IWLTRT是Semtech&#xff08;升特半導體&#xff09;推出的低功耗電容式觸摸控制器&#xff0c;采用IC接口&#xff0c;專為便攜式設備和小家電的觸摸交互設計&#xff0c;支持多點觸控和手勢…

第02章 MySQL環境搭建

1.MySQL的卸載 步驟1&#xff1a;停止MySQL服務 在卸載之前&#xff0c;先停止MySQL8.0的服務。按鍵盤上的“Ctrl Alt Delete”組合鍵&#xff0c;打開“任務管理器”對話框&#xff0c;可以在“服務”列表找到“MySQL8.0”的服務&#xff0c;如果現在“正在運行”狀態&#…

實戰Linux進程狀態觀察:R、S、D、T、Z狀態詳解與實驗模擬

前言 在Linux系統中&#xff0c;進程狀態是系統管理和性能調優的核心知識。一個進程從誕生到終止&#xff0c;會經歷運行&#xff08;R&#xff09;、可中斷睡眠&#xff08;S&#xff09;、不可中斷睡眠&#xff08;D&#xff09;、停止&#xff08;T&#xff09;、僵尸&#…

數據庫與關系數據庫的區別是什么

數據庫&#xff0c;簡單來說&#xff0c;就是一個存儲數據的地方&#xff0c;就像一個超級大倉庫&#xff0c;能把各種各樣的數據都收納進來。它可以是一個簡單的文本文件&#xff0c;用來記錄一些基本信息&#xff1b;也可以是一個復雜的系統&#xff0c;存儲著企業的大量業務…

如何解決微信小程序出現兩個下拉刷新樣式?

在微信小程序中&#xff0c;如果出現兩個下拉刷新的情況&#xff0c;可能是因為在多個地方啟用了下拉刷新功能&#xff0c;或者在同一個頁面中多次調用了下拉刷新的API。以下是一些可能的原因和解決方法&#xff1a; 多次調用下拉刷新API&#xff1a; 確保在頁面的生命周期中只…

(3)手摸手-學習 Vue3 之 變量聲明【ref 和 reactive】區別

手摸手-學習 Vue3 之 變量聲明【ref 和 reactive】區別前言ref 擴展ref 和 reactive 區別前言 ref 擴展 在之前博文《&#xff08;2&#xff09;手摸手-學習 Vue3 之 變量聲明【ref 和 reactive】》中有提到&#xff1a; 當時已基本類型 進行演練說明&#xff0c;此時以 對象…

機器視覺運動控制一體機在SCARA機器人柔振盤上下料的應用

市場應用背景 SCARA機器人是一種高效、高精度的圓柱坐標系工業機器人&#xff0c;專精于裝配任務。其獨特的機械結構賦予其在特定方向&#xff08;通常是XY平面&#xff09;高度順應性&#xff0c;同時在垂直方向保持優異剛性。 SCARA機器人本體通常包含三個軸線平行的旋轉關…

3D 演示動畫在汽車培訓與教育領域中的應用

在企業培訓這一至關重要的領域中&#xff0c;3D 演示動畫猶如一顆璀璨的明星&#xff0c;發揮著無可替代的關鍵作用&#xff0c;大顯身手。以某知名汽車制造企業為例&#xff0c;當對新入職員工開展汽車裝配培訓工作時&#xff0c;企業精心利用先進的 3D 演示動畫技術制作了極為…

華銳視點 VR 污水處理技術對激發學習興趣的作用?

華銳視點的 VR 虛擬仿真平臺&#xff0c;尤其是 VR 污水處理模塊&#xff0c;不僅僅是讓學生觀察&#xff0c;還設置了豐富多樣的互動操作環節&#xff0c;充分激發學生的學習興趣和主動性。?在平臺的 VR 污水處理模擬中&#xff0c;學生可以模擬操作各種污水處理設備。比如&a…

百度斬獲大模型中標第一,股價上漲5%

7月7日&#xff08;周一&#xff09;&#xff0c;百度&#xff08;BIDU.US&#xff09;股價上漲 5%&#xff0c;收報 90.68美元。最新數據顯示&#xff0c;2025上半年我國大模型相關項目呈現爆發式增長態勢&#xff1a;中標項目累計達 1810個&#xff0c;金額突破 64億元&#…

【計算機網絡】4網絡層②

概念是什么?以太網有線聯網的標準LAN小范圍網絡(家里/公司)WAN大范圍網絡(跨城市)Internet全球公共互聯網 ??internet任意互聯的網絡 ??子網將一個LAN通過路由器的硬件隔離分為多個LAN(廣播域)VLAN將一個LAN通過交換機的軟件方法分為多個VLAN(廣播域)以太網和Wi-Fi建L…

微信小程序81~90

1. 配置分包加載以及打包、引用原則 小程序如果需要進行分包加載&#xff0c;需要在 app.json 中&#xff0c;通過 subPackages 或者 subpackages 定義分包結構 每個分包結構含三個常用字段&#xff1a; root&#xff1a;分包的根目錄&#xff0c;該目錄下的所有文件都會被打包…

深度學習——神經網絡1

一、神經網絡 1.神經網絡定義&#xff1a;人工神經網絡&#xff08;Artificial Neural Network&#xff0c;ANN&#xff09;也簡稱為神經網絡&#xff08;NN&#xff09;&#xff0c;是一種模仿生物神經網絡結構和功能的計算模型。人腦可以看作是一個生物神經網絡&#xff0c;由…

ipmitool 使用簡介(ipmitool sel list ipmitool sensor list)

常用IPMI命令擴展使用ipmitool查看傳感器信息ipmitool是一個用于管理IPMI&#xff08;Intelligent Platform Management Interface&#xff09;設備的命令行工具&#xff0c;可用于監控服務器硬件狀態&#xff0c;包括傳感器數據。運行以下命令可以列出所有傳感器信息&#xff…

小米YU7預售現象深度解析:智能電動汽車的下一個范式革命

小米YU7預售現象深度解析&#xff1a;智能電動汽車的下一個范式革命一、預售數據創造三項行業新紀錄 2025年6月26日的小米YU7發布會&#xff0c;不僅刷新了智能汽車預售速度&#xff0c;更揭示了新時代的消費心理變遷&#xff1a; &#xff08;1&#xff09;訂單爆發速度史無前…

xlog-Android15適配之16KB對齊

背景 前兩天查看Google play控制臺突然發現有告警&#xff0c;一看原來是要求必須盡快適配Android15。 過程 先看了一下網上的資料&#xff0c;Android15適配 發現對我的apk基本上沒有什么影響&#xff0c;除了 動態庫必須16KB對齊這一項。 最簡單查看apk是否16KB對齊的方法…

Crazyflie支持MATLAB/Simulink控制 基于NOKOV度量動捕系統實現

Crazyflie支持MATLABSimulink控制 基于NOKOV度量動捕系統實現 一、動捕軟件VRPN配置 以動捕軟件版本XINGYING 4.2.0.5495為例&#xff0c;其他版本同理。打開動捕軟件&#xff0c;連接上鏡頭。單擊菜單欄下的視圖->數據廣播。在數據廣播中的VRPN流下&#xff0c;將單位下拉…

Windows 系統安裝與使用 Claude Code 全攻略

Claude Code 作為一款高效的 AI 編程輔助工具&#xff0c;深受開發者青睞&#xff0c;但由于其本身不支持 Windows 文件系統&#xff0c;在 Windows 系統上使用需要借助 WSL&#xff08;適用于 Linux 的 Windows 子系統&#xff09;。下面為你詳細介紹在 Windows 系統上安裝和使…