完成docker方式的ros环境配置
前提:已经成功安装docker
(一)鱼香ros一键安装docker
wget http://fishros.com/install -O fishros && . fishros
选择数字8安装docker,安装好后再输入上面的一键安装命令,按数字17选择docker代理,选择2服务模式,输入网址:
https://docker.xuanyuan.me/
安装完成后:
docker --version #查询版本sudo usermod -aG docker $USER # 将用户 hdr 加入 docker 组
newgrp docker # 立即激活组权限变更(无需重启系统)
(二)安装docker后先换源
cd /etc/docker
sudo nano daemon.json
输入国内docker hub地址
{"registry-mirrors": ["https://docker.xuanyuan.me","https://docker.1ms.run","https://docker.m.daocloud.io","https://mirror.baidubce.com","https://docker.mirrors.ustc.edu.cn","https://docker.nju.edu.cn"]
}
修改/etc/resolv.conf
nameserver 114.114.114.114
nameserver 8.8.8.8
保存之后在终端运行命令生效修改
sudo systemctl daemon-reload
sudo systemctl restart docker
测试
docker info | grep -A1 "Registry Mirrors" #验证镜像加速器成功生效
docker run hello-world # 测试非 root 权限运行容器
(三)拉取ros2镜像
docker pull ros:humble-desktop
出现错误!!网络请求超时
排查方案:
-
DNS正确
-
使用curl测试https连接
!!网络被封锁,使用镜像源或代理
镜像源加速器配置正常,镜像源配置正常,但docker pull依旧失败。
终解决方案:
重新配置镜像源:
{"runtimes": {"nvidia": {"args": [],"path": "nvidia-container-runtime"}},"registry-mirrors": ["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"]
}
重新加载
sudo systemctl daemon-reload && sudo systemctl restart docker
重新执行fishros
wget http://fishros.com/install -O fishros && . fishros
选择一键安装ros docker版,选择需要安装的ros版本
安装完成后,启动
docker ps -a #查看容器docker_ros
#运行完上述命令如果显示conntain is not running,则运行下面的命令后再执行该命令docker start docker_ros #启动容器
进入后配置环境变量并验证安装
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc # 永久生效
source ~/.bashrc # 立即加载环境ros2 run turtlesim turtlesim_node #ROS2最最熟悉的小海龟,出现即成功
非常好!从此以后我就是鱼香ros最忠诚的拥护者!