You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu18.04 Docker容器中如何用docker exec -d后台运行rviz?

解决Docker容器后台启动RVIZ的问题

问题根源

RVIZ依赖ROS的环境变量(如ROS_PACKAGE_PATH等),直接执行rviz时未加载ROS初始化脚本,会导致进程启动后立即退出;而gedit作为普通桌面应用,无需ROS环境,只要X11转发配置正常就能运行。

解决方案

  1. 确认容器X11转发配置正确
    虽然你能启动gedit,但仍需确认容器启动时已挂载X11权限:
    启动容器的命令需包含以下参数:

    docker run -itd --name walker-container -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix ubuntu:18.04
    

    同时主机需开放X11访问权限(执行一次即可):

    xhost +local:
    
  2. 加载ROS环境后启动RVIZ
    Ubuntu18.04对应ROS Melodic,执行后台命令时先source ROS的初始化脚本:

    docker exec -d walker-container bash -c "source /opt/ros/melodic/setup.bash && rviz"
    
  3. 确保进程后台稳定运行
    如果上述命令仍无窗口响应,可使用nohup避免进程因bash退出而终止,同时重定向输出:

    docker exec -d walker-container bash -c "source /opt/ros/melodic/setup.bash && nohup rviz > /dev/null 2>&1 &"
    
  4. 验证RVIZ进程状态
    执行以下命令检查容器内是否有RVIZ进程:

    docker exec walker-container ps aux | grep rviz
    

    如果进程存在但无窗口,重启容器并重新执行上述命令即可。

内容的提问来源于stack exchange,提问作者yucheng cheng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 15:19:52