码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 在服务器上使用Docker buildx构建适用于jetson(linux/arm64/v8)平台的镜像


    Docker buildx构建适用于jetson(linux/arm64/v8)平台的镜像

    • 1 背景
    • 2 创建镜像
      • 2.1 启用Buildx
      • 2.2 修改Dockerfile
      • 2.3 构建镜像
      • 2.4 运行容器
      • 2.5 apt配置国内源
      • 2.6 更换cudnn
      • 2.7 容器生成新镜像
      • 2.8 镜像导出成tar包
      • 2.9 jetson加载镜像

    1 背景

    该镜像内置了deepface人脸识别功能

    在服务器上构建好的镜像,在jetson上加载该镜像时出现平台不匹配问题WARNING: The requested image's platform (linux/arm64) does not match the detected host platform (linux/amd64/v8) and no specific platform was requested.
    原因:

    dockers镜像的系统架构类型和主机(虚拟机)的系统架构类型不一样。

    Docker 提供了一种名为 Buildx 的功能,它允许在不同的平台上进行多架构构建。因此考虑使用 Buildx 在 amd64 平台上构建适用于 linux/arm64/v8 平台的 Docker 镜像。

    #查看服务器系统架构
    ubuntu@ubuntu-server:~$ uname -m
    x86_64
    ubuntu@ubuntu-server:~$ dpkg --print-architecture
    amd64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    #查看jetson系统架构
    nvidia@ubuntu:~$ uname -m
    aarch64
    #查看jetson操作系统位数
    nvidia@ubuntu:~$ dpkg --print-architecture
    arm64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2 创建镜像

    2.1 启用Buildx

    确保Docker 安装中已启用 Buildx。可以运行以下命令来检查:

    ubuntu@ubuntu-server:~$ docker buildx version
    github.com/docker/buildx v0.8.1-docker 5fac64c2c49dae1320f2b51f1a899ca451935554
    #如果输出如上字样或者包含 "multi-platform" 或 "builder" 字样,那么 Buildx 已启用。否则,需要确保 Docker 版本符合要求,并启用实验性功能。
    
    • 1
    • 2
    • 3

    2.2 修改Dockerfile

    在使用前文Docker部署深度学习项目(cuda11.2+cudnn8.8+deepface)的Dockerfile构建镜像时,buildx提示无法找到waf/mllab镜像,出现了Docker buildx 无法找到本地 docker 镜像的问题(待解决)。
    因此修改Dockerfile内容如下:

    #base image
    #FROM python:3.8
    #修改基础镜像,因为要使用gpu
    FROM nvidia/cuda:11.2.2-cudnn8-devel-ubuntu20.04
    LABEL org.opencontainers.image.source https://github.com/serengil/dee
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    移远EC600U-CN开发板 day03
    Hypermesh三维网格划分技能,以汽车发动机连杆结构为例
    PyG搭建R-GCN实现节点分类
    驱动开发LED灯绑定设备文件
    spring cloud之配置中心
    Apollo学习(一)了解
    如何通过Java代码给Word文档添加水印?
    uni app push 发送透传通知 支持安卓和苹果(RestAPI V2风格)
    【实践】随机森林算法与决策树的效果对比(含Python代码)
    【图像分割】基于元胞自动机实现图像分割附matlab代码
  • 原文地址:https://blog.csdn.net/u014377655/article/details/136259206
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号