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


    1. 设置ubuntu为清华源

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

    1.1 备份源文件

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

    1.2 替换清华源

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

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

    sudo vim sources.list
    
    • 1

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

    1.3 更新清华源

    更新系统源命令如下:

    sudo apt-get update
    
    • 1

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

    sudo apt-get install --reinstall ca-certificates
    
    • 1

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

    sudo apt-get update
    
    • 1

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

    2. Ubuntu Docker 安装

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

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

    4. 安装Nvidia TX2 Docker镜像

    1. 安装TX2镜像

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

      因为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
      
      • 1

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

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

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

      sudo docker ps -a
      
      • 1

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

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

      sudo docker ps
      
      • 1

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

      sudo docker stop 4ee9b494d6b8
      
      • 1

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

    5. 如何使用TX2容器

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

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

    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
  • 相关阅读:
    企业运维实战 ELK日志分析平台 Kinaba (Kibana安装、Kinaba安全认证、Kinaba监测)
    Python 实验七 异常处理和单元测试
    多模态数据也能进行MAE?伯克利&谷歌提出M3AE,在图像和文本数据上进行MAE!最优掩蔽率可达75%,显著高于BERT的15%...
    深入URP之Shader篇6: SimpleLit Shader分析(2) Vertex Shader
    Go Web---RPC
    iOS-2023面试最新-逆向题-视觉
    Linux Command htpasswd 创建密码文件
    【ML】第五章 支持向量机
    神经网络ppt不足之处怎么写,神经网络ppt免费下载
    Mysql练习题---2级
  • 原文地址:https://blog.csdn.net/ZHONGCAI0901/article/details/132874827