autoware docker的安裝

前言

官方的安裝說明:

官方的安裝說明

安裝前,請確認安裝的硬件:

  • 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…