当前位置: 首页 > article >正文

在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”解决办法-阿里云开发者社区


http://www.kler.cn/a/398654.html

相关文章:

  • Vue2教程002:Vue指令
  • 计算机组成与原理(2) basic of computer architecture
  • 详细分析ip addr show 查看网络配置的命令
  • 技术理论||02空中三角测量
  • 活着就好20241118
  • 31DNS设置
  • 【C++动态规划 最长公共子序列】1035. 不相交的线|1805
  • c++基础36时间复杂度
  • Excel模板下载\数据导出
  • MySQL面试之底层架构与库表设计
  • 【iOS】知乎日报第四周总结
  • 智慧社区管理系统平台全面提升物业管理效率与用户体验
  • 拉取docker镜像应急方法
  • 论文《基于现实迷宫地形的电脑鼠设计》深度分析(四)——现实迷宫算法
  • css 布局学习之底部弹窗切换示
  • GPU分布式通信技术-PCle、NVLink、NVSwitch深度解析
  • Stable Diffusion Web UI - Checkpoint、Lora、Hypernetworks
  • 【案例】---Hutool提取excel文档
  • Excel365和WPS中提取字符串的五种方法
  • git如何添加已被忽略的目录里的子目录
  • 海外媒体发稿:中东地区阿拉伯邮报Arab Post新闻媒体宣发
  • hadoop_capacity-scheduler.xml
  • 【go从零单排】Directories、Temporary Files and Directories目录和临时目录、临时文件
  • 应用于各种小家电的快充协议芯片
  • python 多进程,程序运行越来越慢踩坑
  • 【EmbeddedGUI】脏矩阵设计说明