Ubuntu20.04内安装Docker并在Docker内安装 ROS Melodic

目录

一. 在 Ubuntu 20.04 中安装 Docker

  1. 阿里云一键安装

  2. 手动安装步骤

2.1 卸载老旧版本

2.2 安装环境依赖

2.3 安装 GPG 证书

2.4 设置存储库

2.5 安装 Docker

2.6 验证安装是否成功

2.7 安装 Dockers 网页管理

二. 在 Docker 内安装 ROS(Melodic)

1. 安装 Melodic

2. 构建通用环境依赖

3. 在镜像中创建容器

4. 正式使用 Ros Melodic 环境

三. 在 Docker 中使用 Vscode 开发

1. 在 vscode 安装 docker 插件

2. 启动 Docker 容器

3. 使用 vscode 连接 docker 进行开发工作


背景:

由于当前使用的是 Ubuntu20.04 系统,而开发环境需要使用 Ubuntu18.04 + ROS(Melodic),为了方便安装配置,在 Ubuntu20.04 里安装 Docker环境,再在 Docker 中安装 ROS(Melodic)来解决环境问题,为了写代码方便还需要配置 Docker 环境支持 VsCode 远程编码和调试。

一. 在 Ubuntu 20.04 中安装 Docker

  1. 阿里云一键安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

  2.手动安装步骤:
 

  2.1 卸载老旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
  2.2 安装环境依赖
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
  2.3 安装 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
 2.4 设置存储库
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
2.5 安装 Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
2.6 验证安装是否成功
sudo docker run hello-world


如果出现如下信息则安装成功。

2.7 安装 Dockers 网页管理
# 安装 Portainer
sudo systemctl restart docker
sudo docker pull portainer/portainer
sudo docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name prtainer portainer/portainer
# 运行上述命令后,放行防火墙,访问本机的9000端口进入Portainer,创建账号密码之后即可登录到控制台。
# 参考 https://blog.csdn.net/qq_40695642/article/details/117607446

二. 在 Docker 内安装 ROS(Melodic)

1. 安装 Melodic

sudo docker pull osrf/ros:melodic-desktop-full

2.构建通用环境依赖

# Dockerfile 内容:

# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
FROM osrf/ros:melodic-desktop-full

# nvidia-container-runtime
ENV NVIDIA_VISIBLE_DEVICES \
    ${NVIDIA_VISIBLE_DEVICES:-all}

ENV NVIDIA_DRIVER_CAPABILITIES \
    ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics

RUN apt-get update && \
    apt-get install -y \
    build-essential \
    libgl1-mesa-dev \
    libglew-dev \
    libsdl2-dev \
    libsdl2-image-dev \
    libglm-dev \
    libfreetype6-dev \
    libglfw3-dev \
    libglfw3 \
    libglu1-mesa-dev \
    freeglut3-dev \
    vim
# <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

# 创建 ROS 镜像
docker build -f Dockerfile -t MyDocker .

# 查看创建的镜像
sudo docker images

3.在镜像中创建容器

xhost +
sudo docker run -it -v$(pwd):/data --device=/dev/dri --group-add video --volume=/tmp/.X11-unix:/tmp/.X11-unix --env="DISPLAY=$DISPLAY"  --name=catkinDocker MyDocker:latest /bin/bash

'其中参数 -v$(pwd):/data 是指将 ‘当前目录’ 挂载到ROS容器根目录data文件夹下,可以用来和宿主机进行文件交换'

# 查看容器ID及状态:
sudo docker ps -a

# 终端进入容器,并打开 roscore:
sudo docker exec -it your-docker-id /bin/bash
roscore

# 如果 roscore 运行正常,表示 melodic 安装成功,按 ctrl + c 退出 roscore
# 设置进入时加载 ROS 环境:
  sudo vi ~/.bashrc

# 在最后一行加入 source /opt/ros/melodic/setup.bash
# 找到 force_color_prompt=yes, 去掉前面的‘#’开启颜色显示。


4.正式使用 Ros Melodic 环境
# 查看容器
  docker ps -a 

# 启动容器
  docker start container_id
  进入容器后,执行:roscore

# 另开一个终端
  docker exec -it container_id /bin/bash
  进入容器后,执行: rviz

三. 在 Docker 中使用 Vscode 编码开发

1. 在 vscode 安装 docker 插件

      &  
2. 启动 Docker 容器

docker start container_id

3. 使用 vscode 连接 docker 进行开发工作


点击 vscode 左下角的远程连接图标,弹出如上界面,选择 “附加到正在运行的容器...”,

在弹出的选择对话框中选择对应的 Docker 容器,等待连接上 Docker 后,就可以开始编写代码了。

本人的使用感受:Dockers 里的 vscode 的速度相对于本机慢了一些。

  • 12
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值