在ubuntu上安装ubuntu22.04并ros2 humble版本的docker容器记录

需要安装,但网上资料很多并不能解决问题记录如下:

1、修改/etc/hosts文件

增加
108.160.166.137 registry-1.docker.io
185.199.108.133 raw.githubusercontent.com
 

2、编辑/etc/docker/daemon.json 文件

{
    "registry-mirrors" : ["https://你的.mirror.swr.myhuaweicloud.com"],
    "dns" : ["8.8.8.8", "8.8.4.4"]
}
 

3、编辑的dockerfile文件:

# 使用 Ubuntu 22.04 作为基础镜像
FROM ubuntu:22.04

# 设置环境变量
ENV DEBIAN_FRONTEND=noninteractive

# 更新包列表并安装必要的依赖
RUN apt-get update && \
    apt-get install -y \
    curl \
    gnupg2 \
    lsb-release \
    bash-completion

# 添加 ROS 2 的官方 GPG 密钥
RUN curl -s https://gitee.com/ohhuo/rosdistro/raw/master/ros.asc | apt-key add -

# 添加 ROS 2 的仓库
RUN echo "deb [arch=$(dpkg --print-architecture)] https://repo.huaweicloud.com/ros2/ubuntu/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/ros2.list

# 更新包列表
RUN apt-get update

# 检查仓库中的可用包
RUN apt-cache policy ros-humble-desktop python3-argcomplete python3-colcon-common-extensions python3-rosdep python3-ros2cli python3-vcstool

# 安装 ROS 2 Humble
RUN apt-get install -y \
    ros-humble-desktop \
    python3-argcomplete \
    python3-colcon-common-extensions \
    python3-rosdep \
    python3-vcstool

# 将本地的 20-default.list 文件复制到容器中
COPY 20-default.list /etc/ros/rosdep/sources.list.d/20-default.list

# RUN rosdep init

# 修改 rosdep 源为国内源
# RUN sed -i 's|https://raw.githubusercontent.com/ros|https://gitee.com/ohhuo|g' /etc/ros/rosdep/sources.list.d/20-default.list

# 修复 rosdep 权限
RUN rosdep fix-permissions

# 初始化 rosdep
RUN rosdep update

# 确保 /etc/sudoers.d 目录存在
RUN mkdir -p /etc/sudoers.d

# 创建并写入 /etc/sudoers.d/robot 文件
RUN echo 'robot ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/robot && \
    chmod 0440 /etc/sudoers.d/robot
    
# 创建一个新的用户
RUN useradd -ms /bin/bash robot

# 创建一个工作目录并更改所有权
RUN mkdir -p /home/robot/workspace && chown -R robot:robot /home/robot/workspace

# 启用 bash-completion
RUN echo 'source /etc/bash_completion' >> /etc/bash.bashrc

# 切换到新用户
USER robot

# 设置默认命令
CMD ["bash"]

 

4、已经打包了ubuntu22.04+ros2 humble的docker容器,如果大家有需要,请留言邮箱。

参考网页

Docker pull拉取镜像报错“Error response from daemon: Get "https://registry-1.docker.io/v2”解决办法-阿里云开发者社区

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

正点原子IMX6ULL--嵌入式Linux开发板学习中常用命令和笔记记录

学习路线图 传驱动文件 sudo cp chrdevbase.ko chrdevbaseApp /home/txj/linux/nfs/rootfs/lib/modules/4.1.15/ -f bootcmd setenv bootcmd tftp 80800000 zImage;tftp 83000000 imx6ull-alientek-emmc.dtb;bootz 80800000 - 83000000 setenv bootcmd tftp 80800000 zImag…

29.电影院售票系统(基于springboot和vue的Java项目)

目录 1.系统的受众说明 2 论文背景 2.1 国内研究现状: 2.2 国外研究现状: ​​​​​​​2.3 所用技术 3 系统需求分析 ​​​​​​​3.1 需求分析 ​​​​​​​3.2 可行性分析 3.2.1技术可行性分析 3.2.2市场可行性分析 3.2.3经济可…

(一)<江科大STM32>——软件环境搭建+新建工程步骤

一、软件环境搭建 (1)安装 Keil5 MDK 文件路径:江科大stm32入门教程资料/Keil5 MDK/MDK524a.EXE,安装即可,路径不能有中文。 (2)安装器件支持包 文件路径:江科大stm32入门教程资料…

热点更新场景,OceanBase如何实现性能优化

案例背景 这个案例来自一个保险行业的客户:他们的核心系统底层采用了OceanBase数据库作为存储解决方案,然而,在系统上线运行后,出现了一个异常情况,执行简单的主键更新语句时SQL执行时间出现了显著的波动。为了迅速定…

从0开始学习机器学习--Day24--核函数

核函数(Kernelsl function) 非线性数据的决策边界 对于非线性问题来说,决策边界在很多时候都是曲线,需要我们在假设函数中加入高阶多项式来拟合原始数据,这对于算法来说需要很长的运行时间去计算这些高阶多项式,那么有没有更高效…

Unity学习笔记(4):人物和基本组件

文章目录 前言开发环境新增角色添加组件RigidBody 2D全局项目设置Edit 给地图添加碰撞体 总结 前言 今天不加班,有空闲时间。争取一天学一课,养成习惯 开发环境 Unity 6windows 11vs studio 2022Unity2022.2 最新教程《勇士传说》入门到进阶&#xff…

【C++】字符串相乘

1.题目 2.代码 介绍一种比较简单的方法,就是先将字符串逆序,然后取出其中每一位的数相乘、相加。最后再考虑进位问题。 class Solution { public:string multiply(string num1, string num2) {//先排除边界情况,防止输出"00000...&quo…

Pycharm PyQt5 环境搭建创建第一个Hello程序

第一步: 创建Pycharm项目,下载包: pip install PyQt5 -i https://pypi.tuna.tsinghua.edu.cn/simple/pip install PyQt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/下载好了之后,可以看到相应包: PyQt5:PyQt5是一套Python绑定Digia QT5应用的框架。Qt库是最…

新手小白学习docker第六弹------Docker常规安装(安装tomcat、mysql、redis)

目录 1 总体步骤2 安装tomcat2.1 搜索镜像2.2 拉取镜像2.3 查看镜像2.4 启动镜像2.5 访问猫首页 3 安装mysql3.1 搜索镜像3.2 拉取镜像3.3 启动镜像 4 安装redis4.1 拉取镜像4.2 启动镜像(法1基础版)4.3 配置文件4.3.1 在宿主机下新建目录 /app/redis4.3…

python基础大杂烩

命令提示符程序,输入python,运行python程序 代码通过解释器程序翻译给计算机去执行 命令提示符输入的python本质上就是调用D:/dev/python/python3.12.5/python.exe这个解释器程序 有python程序将输入的代码翻译成二进制的0和1,去向计算机去运…

【数字图像处理+MATLAB】对图片进行伽马校正(Gamma Correction):使用幂律变换公式进行伽马变换

引言 伽马校正(Gamma Correction)是一种用于图像处理的技术,主要用于调整图像的亮度或对比度。其基本原理是对图像的每一个像素应用一个非线性变换,以更好地适应人眼的视觉感知。在数字图像处理中,伽马校正通常用于调…

Golang | Leetcode Golang题解之第553题最优除法

题目: 题解: func optimalDivision(nums []int) string {n : len(nums)if n 1 {return strconv.Itoa(nums[0])}if n 2 {return fmt.Sprintf("%d/%d", nums[0], nums[1])}ans : &strings.Builder{}ans.WriteString(fmt.Sprintf("%d…

基于STM32的智能充电桩:集成RTOS、MQTT与SQLite的先进管理系统设计思路

一、项目概述 随着电动车的普及,充电桩作为关键基础设施,其智能化、网络化管理显得尤为重要。本项目旨在基于STM32微控制器开发一款智能充电桩,能够实现高效的充电监控与管理。项目通过物联网技术,提供实时数据监测、远程管理、用…

性能高于Transformer模型1.7-2倍,彩云科技发布基于DCFormer架构通用大模型云锦天章

2017年,谷歌发布《Attention Is All You Need》论文,首次提出Transformer架构,掀开了人工智能自然语言处理(NLP)领域发展的全新篇章。Transformer架构作为神经网络学习中最重要的架构,成为后来席卷全球的一…

黄仁勋:AI革命将创百万亿美元价值!近屿智能带你入局AIGC

11月13日,NVIDIA在日本成功举办了2024年AI峰会。一场关于人工智能驱动的新工业革命的讨论热烈展开。英伟达创始人兼CEO黄仁勋与软银主席兼CEO孙正义共同探讨了当前技术革命的独特之处及其深远影响。 黄仁勋在会上表示,AI革命将创造的价值不是以万亿美元计…

大数据面试题--kafka夺命连环问(后10问)

目录 16、kafka是如何做到高效读写? 17、Kafka集群中数据的存储是按照什么方式存储的? 18、kafka中是如何快速定位到一个offset的。 19、简述kafka中的数据清理策略。 20、消费者组和分区数之间的关系是怎样的? 21、kafka如何知道哪个消…

Vue2:组件

Vue2:组件 非单文件组件定义注册使用 单文件组件 组件是Vue中最核心的内容,在编写页面时,将整个页面视为一个个组件,再把组件拼接起来,这样每个组件之间相互独立,有自己的结构样式,使页面编写思…

超子物联网HAL库笔记:定时器[基础定时]篇

超子物联网 HAL库学习 汇总入口: 超子物联网HAL库笔记:[汇总] 写作不易,如果您觉得写的不错,欢迎给博主来一波点赞、收藏~让博主更有动力吧! 一、资源介绍:STM32F103C8T6定时器资源介绍 高级定时器&#x…

ubuntu20.04_从零LOD-3DGS的复现

环境要求 dependencies:- cudatoolkit11.6- plyfile0.8.1- python3.7.13- pip22.3.1- pytorch1.12.1- torchaudio0.12.1- torchvision0.13.1- tqdm1. 安装conda创建环境 conda create -n lod-3dgs python3.7.132. 安装CUDA11.6和相应cuDNN。 2.1 CUDA CUDA安装参考CUDA10.1…

Springboot 启动端口占用如何解决

Springboot 启动端口占用如何解决 1、报错信息如下 *************************** APPLICATION FAILED TO START ***************************Description:Web server failed to start. Port 9010 was already in use.Action:Identify and stop the process thats listening o…