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

ROS Docker容器修改无法持久化,求助保留配置的方法

解决Docker容器修改不保留及xhost报错问题

一、保留容器修改的两种方法

方法1:提交现有容器为新镜像(快速临时方案)

  • 先确认容器状态,若已退出则先启动:
    # 查看所有容器,找到目标容器的ID或名称
    docker ps -a
    # 启动容器
    docker start <容器ID/名称>
    
  • 在宿主机执行提交命令,把容器的修改打包成新镜像:
    docker commit <容器ID/名称> <新镜像名:标签>
    # 示例:docker commit abc123 my-ros-galactic:v1
    
  • 修改docker_run.sh里的CONTAINER_IMAGE为新镜像标签,比如CONTAINER_IMAGE="my-ros-galactic:v1",再运行脚本即可保留之前的配置。

方法2:用Dockerfile构建自定义镜像(推荐长期方案)

提交镜像的方式不利于长期维护,用Dockerfile记录所有配置步骤更靠谱:

  • 在宿主机创建Dockerfile,写入你的配置命令(根据实际操作修改):
    # 基于原镜像
    FROM dustynv/ros:galactic-pytorch-l4t-r32.7.1
    
    # 添加你在容器内执行的配置命令,比如:
    # RUN apt-get update && apt-get install -y 你的软件包
    # RUN pip install 你的Python依赖库
    # COPY 本地需要同步的文件 容器内路径
    
  • 执行构建命令生成新镜像:
    docker build -t my-ros-galactic:v1 .
    
  • 同样修改docker_run.sh的镜像标签为新镜像,运行脚本即可。

二、解决xhost报错问题

你遇到的xhost: unable to open display ""等错误,是因为脚本尝试配置图形界面转发但宿主机X11权限未设置好,解决步骤:

  • 在宿主机执行命令,允许本地用户访问X服务器:
    xhost +local:root
    
  • 若~/.Xauthority文件不存在则创建并设置权限:
    touch ~/.Xauthority
    chmod 600 ~/.Xauthority
    
  • 重新运行./docker_run.sh,该报错即可消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:45:23