【Docker】ubuntu20.04 X86机器搭建NVIDIA ARM64 TX2的Docker镜像

文章目录

  • 1. 设置ubuntu为清华源
    • 1.1 备份源文件
    • 1.2 替换清华源
    • 1.3 更新清华源
  • 2. Ubuntu Docker 安装
  • 3. 安装qemu
  • 4. 安装Nvidia TX2 Docker镜像
  • 5. 如何使用TX2容器
  • 6. 参考资料

1. 设置ubuntu为清华源

为了后面ubuntu下载安装软件快些,需要使用国内的源,比如清华源。
(备注:已经更新过或者不太关心下载速度可以跳过此步)

1.1 备份源文件

  • 进入到源文件sources.list目录:
    cd  /etc/apt/
    
    目录展示如下:
    在这里插入图片描述
  • source.list备份到source.list.bak,为了防止修改失误,万一出现问题可以使用备份文件source.list.bak进行还原。
    sudo  cp sources.list sources.list.bak
    
    输入命令后的效果如下:
    在这里插入图片描述

1.2 替换清华源

打开清华源官网,选择自己使用的ubuntu的版本,例如:Ubuntu 20.04
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

在这里插入图片描述
使用vim打开源文件,删除原来所有的内容,然后将网站上的内容复制粘贴到源文件:

sudo vim sources.list

效果如下:
在这里插入图片描述
然后保存退出。

1.3 更新清华源

更新系统源命令如下:

sudo apt-get update

更新过程中出现了错误如下:
在这里插入图片描述
这里需要安装/更新证书ca-certificates,命令如下:

sudo apt-get install --reinstall ca-certificates

证书更新成功后,再次更新源:

sudo apt-get update

没有任何错误,更新成功。效果如下:
在这里插入图片描述

2. Ubuntu Docker 安装

  1. 安装 apt 依赖包,用于通过HTTPS来获取仓库:
    sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
    
  2. 添加 Docker 的官方 GPG 密钥:
    curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
    
  3. 添加Docker软件源,执行以下命令来添加Docker的软件源:
    sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
    
  4. 更新 apt 包索引:
    sudo apt-get update
    
  5. 安装最新版本的 Docker Engine-Community 和 containerd
    sudo apt-get install docker-ce docker-ce-cli containerd.io
    
  6. 测试 Docker 是否安装成功,输入以下指令,打印出以下信息则安装成功:
    sudo docker run hello-world
    
    打印出以下信息则安装成功:
    在这里插入图片描述

3. 安装qemu

因为需要在X86架构机器模拟ARM架构来编译,这里需要用到qemu-user-staticqemu-user-static是一个用于利用当前操作系统来运行其它架构的一个仿真器,可以通过x86的机器编译出其它各个架构的docker镜像。

qemu-user-static项目的github地址:
https://github.com/multiarch/qemu-user-static

  1. ubuntu安装qemu
    sudo apt-get install qemu
    
  2. 下载qemu-aarch64-static
    wget https://github.com/multiarch/qemu-user-static/releases/download/v5.1.0-5/qemu-aarch64-static.tar.gz
    
    (备注:无法下载就使用windows浏览器直接下载)
  3. 解压
    tar xzvf qemu-aarch64-static.tar.gz
    
  4. 配置可执行文件路径
    sudo cp qemu-aarch64-static /usr/bin/
    sudo chmod +x /usr/bin/qemu-aarch64-static
    
  5. 注册qemu-user-static虚拟机
    sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    
    运行效果如下:
    在这里插入图片描述

4. 安装Nvidia TX2 Docker镜像

  1. 安装TX2镜像

    sudo docker pull nvcr.io/nvidia/l4t-base:r32.5.0
    

    因为TX2实际的板子使用的版本为r32.5.0,所以这里的镜像保持一直都使用r32.5.0版本。

    运行效果如下:
    在这里插入图片描述

  2. 创建并启动TX2容器

    sudo docker run --name=TX2_Base --platform linux/arm64 -it nvcr.io/nvidia/l4t-base:r32.5.0 /bin/bash
    

    成功创建容器并且进入的效果如下:
    在这里插入图片描述

  3. 退出终端,直接输入exit
    在这里插入图片描述

  4. 查看所有的容器命令如下:

    sudo docker ps -a
    

    通过查询命令可以看到刚刚被成功创建的TX2的容器,并且容器的ID为4ee9b494d6b8,下次启动就可以直接通过容器ID来启动。
    在这里插入图片描述

  5. 停止不使用的容器
    首先查看哪些容器正在运行,命令如下:

    sudo docker ps
    

    可以看到容器4ee9b494d6b8正在运行,如下:
    在这里插入图片描述
    然后将这个容器停止运行:

    sudo docker stop 4ee9b494d6b8
    

    执行后的效果如下:
    在这里插入图片描述

5. 如何使用TX2容器

每次当ubuntu系统重新启动之后,我们都需要重新启动一下qemu。执行如下步骤来启动前面创建的TX2容器,具体如下:

  1. 启动qemu
    sudo docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
    
  2. 使用 docker start 启动一个已停止的容器,4ee9b494d6b8为前面创建的TX2容器
    sudo docker start 4ee9b494d6b8
    
  3. 进入docker容器
    sudo docker exec -it 4ee9b494d6b8 /bin/bash
    
    进入的效果如下:
    在这里插入图片描述

6. 参考资料

  1. NVIDIA L4T Base官网资料
    https://catalog.ngc.nvidia.com/orgs/nvidia/containers/l4t-base
  2. 利用x86机器编译支持arm架构的docker镜像
    https://blog.csdn.net/ccgshigao/article/details/109631585
  3. Docker的使用
    https://www.runoob.com/docker/ubuntu-docker-install.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/79323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

conda常用命令及问题解决-创建虚拟环境

好久没写博文了,感觉在学习的过程中还是要注意积累与分享,这样利人利己。 conda包清理,许多无用的包是很占用空间的 conda clean -p //删除没有用的包 conda clean -y -all //删除pkgs目录下所有的无用安装包及cacheconda创建虚拟环境…

文件上传漏洞(CVE-2022-30887)

简介 多语言药房管理系统(MPMS)是用PHP和MySQL开发的,该软件的主要目的是在药房和客户之间提供一套接口,客户是该软件的主要用户。该软件有助于为药房业务创建一个综合数据库,并根据到期、产品等各种参数提供各种报告…

Flutter插件之阿里百川

上一篇:Flutter插件的制作和发布,我们已经了解了如何制作一个通用的双端插件,本篇就带领大家将阿里百川双端sdk制作成一个flutter插件供项目调用! 目录 登录并打开控制台,创建应用:填写应用相关信息开通百川…

华为云云服务器云耀L实例评测 | 智能不卡顿:如何实现流畅的业务运行

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

埃文科技受邀出席“安全堤坝”技术论坛

2023年9月11日,2023年国家网络安全宣传周河南省活动开幕式暨河南省网络文明大会在开封博物馆开幕。由CCF YOCSEF郑州举办的“聚焦数据交易监管技术,筑牢数据交易‘安全堤坝’”技术论坛在开封市博物馆二楼会议厅举行。埃文科技总经理王永博士与副总经理武…

“存量竞争” 体验为王,火山引擎边缘云助力内容社区破局

今年4月,在宣布要技术升级、数据重构后,承载无数人青春的天涯社区疑似关停,一代传奇的衰落为所有内容社区释放出了不可忽视的信号。 图片来源:天涯官博 回顾天涯社区发展史,从“周公子大战易烨卿”、天涯十大诡异事件&…

uniapp 悬浮窗-任意界面 Ba-FloatWinWeb

简介(下载地址) Ba-FloatWinWeb 是一款支持自定义任意界面的悬浮窗插件。采用webview方式,同时支持本地、网络地址;自带几种界面,可直接使用。 支持显示、更新、隐藏支持记录显示位置支持拖动支持监听点击事件支持自…

惊讶!投资人明目张胆套商业机密;AIGC招聘市场解读;超级个体公开课;如何说服客户购买AI产品 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🔥 投资人明目张胆套商业机密,创业者需要了解这些 佩妮小阿姨-知名机构投资人路演竟然当场欺骗创业者 昨晚创投圈火热的话题…

大数据技术准备

Hbase:HBase 底层原理详解(深度好文,建议收藏) - 腾讯云开发者社区-腾讯云 Hbase架构图 同一个列族如果有多个store,那么这些store在不同的region Hbase写流程(读比写慢) MemStore Flush Hbas…

C语言——指针进阶(三)

目录 一.前言摘要 二.排序函数qsort的模拟实现 三.指针和数组笔试题解析 一.前言摘要 讲述关于strlen和sizeof对于各种数组与指针的计算规则与用法。另外还有qsort函数的模拟实现(可以排序任意类型变量) 二.排序函数qsort的模拟实现 目标:…

Java基础-异常处理

文章目录 异常机制的作用异常存在的形式 异常机制的作用 什么是异常,异常的作用?程序在执行的过程中发生了不正常的情况,而这种情况被称之为"异常"。Java语言是很完善的语言,提供了异常的处理方式:Java把异…

JUC相关面试题

👏作者简介:大家好,我是爱发博客的嗯哼,爱好Java的小菜鸟 🔥如果感觉博主的文章还不错的话,请👍三连支持👍一下博主哦 📝社区论坛:希望大家能加入社区共同进步…

SpringMVC之CRUD(增删改查)

SpringMVC之CRUD(增删改查) 数据库 # 创建表CREATE TABLE Student (sid INT PRIMARY KEY,sname VARCHAR(50),sage INT,spic VARCHAR(255));给student表插入数据 INSERT INTO Student (sid, sname, sage, spic) VALUES (1, John Do, 25, path/to/image1.jpg), (2, Jane Smith, …

IIS解析漏洞复现

文章目录 漏洞复现总结 漏洞复现 打开虚拟机,在C:\inetpub\wwwroot\8000_test目录下放一个phpinfo.php文件: 在服务器管理器中打开IIS管理器,选择处理映射程序: 点击添加模块映射: 配置映射模板,php文件…

【AI】数学基础——最优化

从本质上讲,人工智能的目标就是最优化——在复杂环境中与多体交互中做出最优决策 几乎所有的人工智能问题都会归结为一个优化问题 在线性搜索中,确定寻找最小值时的搜索方向需要使用目标函数的一阶导数和二阶导数置信域的思想是先确定搜索步长&#xff0…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS基础(一)

ﻌﻌﻌﻌ♡‎ﻌﻌﻌﻌ♡‎‎ﻌﻌﻌﻌ♡‎ﻌﻌﻌﻌ♡ﻌﻌﻌﻌ…

Qt使用注意事项

1.菜单选项不能出现数字,可以是 英文 加 “_”: 2.如何确保加载的图片,尺寸大小与原来一样? 【QT】添加图片资源并使用QImage加载图片显示_qimage显示图片_李春港的博客-CSDN博客 ui->PicLabel->setPixmap(QPixmap::fromIm…

K8s的网络——underLay和overLay网络

0. 基础知识 1)网络7层基础知识 在网络7层协议基础里, 第一层物理链路;第二层是数据链路层,在第一层的基础上引入MAC地址做数据转发。MAC地址在局域网内具有唯一性,主机A发送数据时,会向局域网内进行广播…

QT生成ICO文件

生成ICO文件 #include <QApplication> #include <QImage> #include <QIcon> #include <QFile> #include <QDebug> #include <QPixmap>int main(int argc, char* argv[]) {QApplication app(argc, argv);// 读取图片文件QImage image(&quo…

IDEA编写Java编程代码提示插件

网址&#xff1a; aiXcoder idea软件中使用代码提示&#xff1a; aixcoder