前言

官方的安装说明:

官方的安装说明

安装前,请确认安装的硬件:

  • CPU with 8 cores
  • 16GB RAM
  • [Optional] NVIDIA GPU (4GB RAM)

满足需求

1. 安装软件依赖

这一步主要是安装三个软件:

  • Docker
  • NVIDIA Container Toolkit (preferred)
  • NVIDIA CUDA 12 compatible GPU Driver (preferred)

1.1 ​​安装 Docker​​


步骤:
卸载旧版本(若有):

sudo apt-get remove docker docker-engine docker.io containerd runc


安装依赖工具:

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release


添加 Docker 官方 GPG 密钥和仓库:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(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 docker-ce docker-ce-cli containerd.io docker-compose-plugin


将用户加入 docker 组(避免每次用 sudo):

sudo usermod -aG docker $USER
newgrp docker  # 刷新当前会话


✅ 验证 Docker 安装:

docker run --rm hello-world

​​成功标志​​:输出 Hello from Docker! 及相关信息。

1.2 ​​安装 NVIDIA GPU 驱动(CUDA 12 兼容版本)​​
 

步骤:
查看推荐驱动版本:

ubuntu-drivers list


安装支持 ​​CUDA 12​​ 的驱动(如 nvidia-driver-535):

sudo apt install nvidia-driver-535


注:具体版本需参考 NVIDIA 官网。驱动版本 ≥525.60.13 通常兼容 CUDA 12。

重启系统:

sudo reboot


✅ 验证驱动安装:

nvidia-smi


​​成功标志​​:
输出 GPU 信息表格。
顶部显示 CUDA Version: 12.x(表示驱动兼容 CUDA 12)。

1.3 ​​安装 NVIDIA Container Toolkit​

步骤:

  1. 添加仓库和密钥:

    curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

  2. 安装工具包:
    sudo apt-get update sudo apt-get install -y nvidia-container-toolkit

  3. 重启 Docker:
    sudo systemctl restart docker

✅ 验证 NVIDIA Container Toolkit:

docker run --rm --gpus all nvidia/cuda:11.0.3-base nvidia-smi
  • ​成功标志​​:输出与宿主机相同的 nvidia-smi 表格(GPU 访问正常)。

最后一步,验证不成功,类似于下面的错误,

错误原因是docker没有办法连接网络,修改如下:

1. 确保自己能科学上网,并有代理的连接

2. 修改docker的服务器链接,如果没有文件就新建一个文件,确保/etc/docker/daemon.json,如下图所示。

具体的内容:

{
    "registry-mirrors": [
    "https://docker.nju.edu.cn",
    "https://do.nark.eu.org",
    "https://dockerproxy.com",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com",
    "https://docker.m.daocloud.io",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://dockerhub.icu",
    "https://docker.registry.cyou",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.jsdelivr.fyi",
    "https://dockertest.jsdelivr.fyi",
    "https://mirror.aliyuncs.com",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://docker.rainbond.cc"
    ]
}
 

3. 新建docker代理

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF
[Service]
Environment="HTTP_PROXY=http://<代理IP>:<端口>"
Environment="HTTPS_PROXY=http://<代理IP>:<端口>"
EOF
sudo systemctl daemon-reload && sudo systemctl restart docker

注意:这个时候需要代理(科学上网),最终结果如下图所示。

4. 修复GPG密钥与仓库配置
​​重新添加Docker官方GPG密钥​​
密钥过期会导致仓库验证失败:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg


​​修正仓库地址格式​​
确保路径包含 signed-by 参数(Ubuntu 22.04+必需):

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list

做完上面的事情后,使用下面两个命令,进行测试,确保docker工作正常

docker pull nginx:latest
docker pull ubuntu:latest

如果上面的两个命令,可以,但是

docker run --rm --gpus all nvidia/cuda:11.0.3-base nvidia-smi

还是不可以的话,很有可能是网络问题,换个时间,换个网络试试。我出现了上面的问题,晚上能拉取Nginx和Ubuntu,但是就是不能拉取nvidia的镜像。第二天,中午,就可以了,可能是代理服务器换了代理。

最终成功的结果,如下图所示。

2. 拉取镜像

2.1 总体思路

直接在国内拉取镜像是不能完成的,由于网络原因,即使是能科学*上*网,也是不行的。因此,需要借助国内的云服务商提供的服务,先把镜像拉到国内云服务商上,然后,再从云服务商上拉取镜像。

为了在云服务商商拉取镜像,就需要先在GitHub上建一个仓库,并在GitHub仓库上创建一个Dockefile文件,便可以,下面进行具体的说明。

说明:

1. 上面的说法是再测试前给出的思路,以上思路整体做完后,腾讯云还是不能从autoware官网拉取其官网的docker镜像;

2. 最终的解决方案还是直接从docker镜像的官网拉取镜像,详见2.3节最后部分及2.4节

2.2 建立GitHub仓库

在GitHub上新建一个仓库,如下图所示,点击New。

选择公用仓库,其它默认。

点击创建仓库,根据GitHub给出的命令,在本地创建git仓库,并同步到GitHub,具体操作流程,参考下图。

注意:在该仓库中,就只有一个文件,放置的是Dockerfile,内容是根据海外dock的文件位置,构建自己Dock的地址。

如:构建autoware的镜像,则:

FROM ghcr.io/autowarefoundation/autoware:universe-devel-cuda

2.3 建立腾讯云容器镜像服务

登录腾讯云后,在控制台检索“镜像”,进入容器镜像服务,首先,新建命名空间。新建命名空间的时候,一定要注意,一定要选择北美的地理位置,我在阿里上选了新加坡,结果构建不成功。而且阿里只有一次选择地理位置的机会,所以,没有办法才切换到腾讯云。

然后,新建一个仓库

点击仓库名,选择镜像构建,点击“新建镜像构建规则”,选择GitHub,填写GitHub代码仓库,选择分支,填写版本规则(名字自己取),后面的分支标签,更新时间,commit号打上√

点击立即构建

指定分支

等待构建完成。需要很长时间,耐心等待。

镜像构建成功后如上图所示。

注意:

1. 上面的日志有一部分是边做边截图的,不一定完善,只作为参考。

2. 经过我的验证,autoware官网的docker还是无法拉取,以上拉取成功的是从docker官网拉取的。

3. docker官网并没有官方autoware镜像,因此,只能拉取其它作者建立的修改后的镜像;

autoware的检索结果

最终拉取的dock镜像

上面的dock镜像的官网:

Running Multiple Autoware-Powered Vehicles in Carla using Zenoh - Autoware

这个镜像应该是比官网的镜像更加符合研究者的需求,集合了autoware和模拟器carla,并且可以是多车控制的。

2.4 拉取镜像

从腾讯云拉取,参考仓库的快捷指令即可。

本文档最终还是没有从腾讯云拉取镜像,而是直接通过科学**上网,从docker官网拉取了相应的镜像,如下图所示。

代码如下:

docker pull 2256906828/zenoh_autoware:0.3.0

总结

由于网络原因,很难从外网拉取镜像,本文描述了,如何通过国内的云中转拉取镜像的方法。实际测试的效果是,autoware官方的镜像很难拉取,即使通过海外云也不行。所以,拉取autoware镜像的方法,还是从docker镜像官网,下载修改过的镜像。如果从docker官网下载,多重复几次拉取,基本都可以的,也无须使用云进行中转。虽然,通过云中转在本文中拉取autoware是不需要的,但是,也是一种docker拉取的方法,作为记录保留在本文档

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

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

相关文章

AWS 解决方案深度剖析:Amazon QLDB — 构建可信赖、不可变的数据审计基石

导言&#xff1a;数据可信的挑战 在现代应用开发中&#xff0c;尤其是在金融、供应链、身份认证、政府事务、医疗记录管理等领域&#xff0c;数据完整性和历史追溯性至关重要。我们常常面临以下挑战&#xff1a; 审计困难&#xff1a; 如何证明数据从诞生至今未被篡改&#xf…

Leetcode-​1358. 包含所有三种字符的子字符串数目​

Problem: 1358. 包含所有三种字符的子字符串数目 思路 滑动窗口 解题过程 滑动窗口&#xff1a;使用左右指针 l 和 r 维护一个窗口&#xff0c;窗口内字符的频次由 cnt 记录。 右指针扩展&#xff1a;右指针 r 不断右移&#xff0c;将字符加入窗口并更新频率。 左指针收缩&a…

iTunes 无法备份 iPhone:10 种解决方法

Apple 设备是移动设备市场上最先进的产品之一&#xff0c;但有些人遇到过 iTunes 因出现错误而无法备份 iPhone 的情况。iTunes 拒绝备份 iPhone 时&#xff0c;可能会令人非常沮丧。不过&#xff0c;幸运的是&#xff0c;我们有 10 种有效的方法可以解决这个问题。您可以按照以…

Unity 接入抖音小游戏一

目录 一、搭建小游戏环境 二、接入抖音SDK 1.初始化 2.登录 3.分享 4.添加到桌面 5.侧边栏功能 6. 接入流量主 三、完整代码 下一篇传送门 Unity 接入抖音小游戏二 -CSDN博客 一、搭建小游戏环境 我这边因为没有下载其他版本的Unity所以就先用2022.3.57f1了 大家还是下载…

Node.js 项目启动命令全面指南:从入门到精通(术语版)

文章目录 Node.js 项目启动命令全面指南&#xff1a;从入门到精通一、核心启动命令深度解析1. 基础命令结构与执行机制2. 参数传递机制详解 二、常用命令分类详解1. 运行环境命令对比2. 质量保障命令详解3. 构建部署全流程 三、高级配置实战技巧1. 环境变量管理进阶2. 命令组合…

创意风格行业PPT模版分享

极简主题PPT模版&#xff0c;设计类PPT模版&#xff0c;快乐童年成长PPT模版&#xff0c;教育机构通用PPT模版&#xff0c;创意风格行业PPT模版 创意风格行业PPT模版分享&#xff1a;https://pan.quark.cn/s/3bac52e09479

Java + Spring Boot + MyBatis 枚举变量传递给XML映射文件做判断

枚举定义 ReagentStatus.java package com.weiyu.utils.enums;import lombok.Getter;/*** 试剂状态枚举*/ Getter public enum ReagentStatus {// 常规REGULAR,// 少库存LESS_INVENTORY,// 零库存ZERO_INVENTORY,// 将过期WILL_EXPIRE,// 已过期EXPIRED,// 已注销LOGGED,// 全…

华为云Flexus+DeepSeek征文 | 华为云CCE容器高可用部署Dify高可用版实测:从0到1的高可靠应用实践

引言 随着大语言模型&#xff08;LLM&#xff09;技术的爆发&#xff0c;如何快速构建具备高可用、弹性扩展能力的AI应用开发平台&#xff0c;成为企业数字化转型的关键命题。华为云依托其云原生基础设施&#xff0c;推出CCE容器高可用版Dify部署方案&#xff0c;通过“一键部…

c++_cout的理解和使用

问题引入 cout << (uf.is_same_set(x, y)) ? Y : N<<endl; 请问大家&#xff0c;这条语句对吗&#xff1f;&#xff08;这里的uf.is_same_set(x, y)是一个自定义函数&#xff0c;返回bool值&#xff1b;所以不是问题的关键&#xff09;》 答案是这条语句报错了…

山东大学项目实训-创新实训-法律文书专家系统-项目报告(八)

项目实训博客 : 项目后端架构 , 项目的四端交互(前端 ,后端 ,模型端 ,数据库)的开发和维护 , 项目功能总览 作为项目的后端和前端交互功能主要开发者,我需要对项目的四端交互进行开发和维护. 总览: 整体项目结构如图所示: 前后端的交互: 前端封装了request.js : 方便前端…

12.8Java Swing 中的MVC

在 Java Swing 中&#xff0c;MVC 模式被广泛应用。例如&#xff0c;JTable、JList 等组件都采用了这种模式。通常&#xff1a; 模型&#xff1a;实现特定的 Swing 模型接口&#xff08;如 TableModel、ListModel&#xff09;。视图&#xff1a;是 Swing 组件本身&#xff08;…

DDS(Data Distribution Service)

DDS&#xff08;Data Distribution Service&#xff09;是一种以数据为中心的发布/订阅&#xff08;DCPS&#xff09;通信中间件协议栈标准&#xff08;由OMG组织维护&#xff09;。它专为高性能、可预测、实时、可靠的分布式系统设计&#xff0c;广泛应用于国防、航空航天、工…

python爬虫关于多进程,多线程,协程的使用

简介&#xff1a; python其实没有真正意义的多线程&#xff0c;因为有GIL锁存在&#xff0c;但是python3.13去掉GIL锁&#xff0c;有两个版本&#xff0c;python3.13t和python3.13&#xff0c;python3.13去掉GIL锁相当于python底层大规模改变&#xff0c;肯定会影响一些库的使…

java 设计模式_行为型_23状态模式

23.状态模式 Java中的状态设计模式是一种软件设计模式&#xff0c;当对象的内部状态更改时&#xff0c;该模式允许对象更改其行为。状态设计模式通常用于以下情况&#xff1a;对象取决于其状态&#xff0c;并且在运行期间必须根据其内部状态更改其行为。状态设计模式是许多行为…

Flink CDC MySQL 时区相差 8 小时问题优雅解决方式

Flink CDC MySQL 时区相差 8 小时问题解析 代码运行环境 Flink 1.15 + FlinkCDC 2.4.0 + jdk1.8 +springboot 2.31、原因分析 Flink CDC 底层使用 Debezium 连接器来捕获 MySQL 的数据变更,而 Debezium 在解析 MySQL 的 binlog 日志时,默认使用 UTC 时区来处理时间字段。若…

如何在 MX Linux 上安装 Blender CAD 软件

Blender 是一款免费且开源的 CAD 软件,可用于 3D 动画、建模、动态图形、纹理处理、电脑游戏、UV 展开等。同时它也是一款专业的开源程序,是商业软件(如 Maya 或 Cinema 4D)的替代品,支持导入或导出标准格式,如 OBJ、FBX、3DS、PLY 和 STL。Blender 还可以作为视频编辑软…

电脑上的.ssh目录只做什么的

.ssh 目录的作用和来源 系统自动创建 这个目录是在你第一次使用SSH相关功能时自动创建的比如第一次执行 ssh 命令连接服务器时或者使用Git通过SSH协议克隆代码时 主要用途 SSH密钥存储 - 存放公钥/私钥对已知主机记录 - known_hosts 文件记录你连接过的服务器指纹SSH客户端…

Excel大厂自动化报表实战(互联网金融-数据分析周报制作下)

这是Excel大厂自动化报表实战第四期--互联网金融-数据分析周报制作下 数据资源已经与这篇博客捆绑&#xff0c;有需要者可以下载通过网盘分享的文件&#xff1a;2.4自动化报表-8月成交数据.xlsx&#xff0c;2.4自动化报表-8月获客数据.csv等2个文件 链接: https://pan.baidu.c…

界面组件DevExpress WPF中文教程:Grid - 节点(Nodes)概述

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

开源统一数据库管理平台完全指南:私有化部署方案与技术解析

摘要:面对MySQL、Oracle、Redis等混合数据库环境,如何实现统一管控?本文深度评测5大开源平台,附私有化部署方案和性能对比。 一、核心需求场景与技术选型 典型痛点: #mermaid-svg-LuCYYyJjBakpzzFH {font-family:"trebuchet ms",verdana,arial,sans-serif;font…