鱼香ROS社区
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    • 注册
    • 登录
    紧急通知:禁止一切关于政治&VPN翻墙等话题,发现相关帖子会立马删除封号
    提问前必看的发帖注意事项: 社区问答规则(小鱼个人)更新 | 高质量帖子发布指南

    一键安装ros:noetic+docker成功后docker desktop不同步显示镜像和容器, 输入指令控制显示Error response from daemon: No such container: noetic1 Error: failed to start containers: noetic1

    已定时 已固定 已锁定 已移动
    一键安装
    docker ros image container失败
    5
    14
    836
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 小伊小
      机器人小伊
      最后由 编辑

      从您提供的信息来看,有几个可能的问题和解决方案:

      1. 容器名称和镜像标签混淆

      首先,您在 docker pull 命令中拉取了 fishros2/ros:noetic-desktop-full 镜像,但在 docker images 的输出中显示的是 osrf/ros:noetic-desktop-full。这里可能存在一个混淆,因为您可能原本想使用的是 osrf/ros 镜像,但实际上拉取了 fishros2/ros。请确认您实际想要使用的镜像名称和标签。

      解决方案:

      • 如果您想使用 fishros2/ros 镜像,确保后续命令中也都使用它。
      • 如果想使用 osrf/ros,请拉取并使用该镜像。

      2. 容器启动但未显示

      您成功启动了容器 noetic1 并得到了容器ID 2c5bd4e010b3,但 docker ps 可能没有显示它,因为您使用了 -dit 参数(即 --detach --interactive --tty 的组合),其中 --detach 会让容器在后台运行。

      解决方案:

      • 使用 docker ps -a 来查看所有容器(包括未运行的容器)。
      • 如果容器正在运行,但您想进入它,可以使用 docker exec -it noetic1 /bin/bash。

      3. 容器名或ID输入错误

      在尝试控制容器时,您可能输入了错误的容器名或ID。从您的输出看,容器名是 noetic1,但您可能在某处错误地输入了 noetic11。

      解决方案:

      • 仔细检查您的命令和输入,确保使用正确的容器名或ID。

      4. X11转发和权限问题

      由于您使用了 -v /tmp/.X11-unix:/tmp/.X11-unix 和 --device=/dev/dri/renderD128 等参数来尝试图形界面转发,确保您的用户有权访问这些设备和目录。

      解决方案:

      • 确保您的用户是 docker 用户组的一部分,这样可以不使用 sudo 来运行 docker 命令。
      • 如果使用图形界面,确保您的 X11 服务器配置正确,允许从 Docker 容器访问。

      5. 验证容器状态和日志

      使用 docker logs noetic1 查看容器的输出日志,这可能会提供更多关于容器启动失败或运行问题的信息。

      总结

      请首先确认您正在使用正确的镜像名称和标签,并使用 docker ps -a 来查看所有容器。如果容器正在运行但您无法访问它,尝试使用 docker exec 进入容器。同时,检查您的 X11 和设备转发设置,确保没有权限或配置问题。如果问题仍然存在,请查看容器的日志以获取更多信息。


      以上为生成回答,仅供参考~

      我是小伊,已接入ChatGpt,所有回复,仅供参考~

      2 1 条回复 最后回复 回复 引用 0
      • 2
        2944197166 @小伊
        最后由 编辑

        @小伊 在 一键安装ros:noetic+docker成功后docker desktop不同步显示镜像和容器, 输入指令控制显示Error response from daemon: No such container: noetic1 Error: failed to start containers: noetic1 中说:

        docker ps -a

        23c6d7e4-7688-46b9-bbb7-6f345f51d06d-image.png
        docker ps -a显示为空

        c818418d-5b24-4632-a941-0e59991fd277-image.png
        查看输出日志没有此容器

        1 条回复 最后回复 回复 引用 0
        • 小伊小
          机器人小伊
          最后由 编辑

          当你遇到 Docker Desktop 不显示镜像和容器,并且使用 docker ps -a 命令显示为空,同时尝试启动一个不存在的容器(如 noetic1)时收到错误消息,这通常意味着几个可能的问题:

          1. 容器确实不存在:你可能尝试启动的容器 noetic1 并不存在于你的 Docker 环境中。首先确认你是否有误输入了容器名。

          2. Docker 环境问题:可能是 Docker Desktop 没有正确运行,或者与你的系统有其他冲突。

          3. Docker 配置问题:有时候 Docker 的配置(如存储位置、网络设置等)可能导致问题。

          4. Docker Desktop 和 Docker 守护进程同步问题:虽然不常见,但有时 Docker Desktop 的界面可能没有及时反映 Docker 守护进程的最新状态。

          以下是一些解决步骤:

          步骤 1: 检查 Docker Desktop 是否正在运行

          确保 Docker Desktop 正在你的系统上运行。你可以在系统托盘(通常位于屏幕的右下角)中找到 Docker Desktop 的图标,并检查其状态。

          步骤 2: 重新启动 Docker Desktop

          有时重新启动 Docker Desktop 可以解决同步问题。你可以通过系统托盘中的 Docker Desktop 图标来重启它,或者通过系统的任务管理器/活动监视器来强制结束 Docker Desktop 的进程,然后重新打开它。

          步骤 3: 检查 Docker 守护进程

          打开命令行工具(如 PowerShell、Terminal 或 CMD),并输入以下命令来检查 Docker 守护进程的状态:

          docker info
          

          这将显示 Docker 的详细信息,包括容器、镜像等的数量。如果这里显示有容器或镜像,但 Docker Desktop 中没有显示,那么可能是同步问题。

          步骤 4: 查看 Docker 日志

          查看 Docker 的日志文件可能提供有关问题的更多信息。日志文件的位置取决于你的操作系统和 Docker 的配置。在 Linux 上,它们通常位于 /var/log/docker.log 或 /var/log/syslog(取决于系统配置)。在 Windows 上,你可以通过 Docker Desktop 的设置或直接在 Docker Desktop 的界面中查看日志。

          步骤 5: 重新拉取和启动容器

          如果你确实需要 noetic1 容器,但不确定它是否已创建,你可以尝试重新拉取相应的镜像并创建一个新的容器。例如,如果你的 noetic 镜像与 ROS Noetic 相关,你可以使用以下命令:

          docker pull ros:noetic
          docker run -d --name noetic1 ros:noetic
          

          这将拉取 ros:noetic 镜像(如果尚未拉取),并启动一个新的容器名为 noetic1。

          步骤 6: 检查防火墙和安全软件

          确保你的防火墙或安全软件没有阻止 Docker 的操作。这可能会影响 Docker 守护进程与 Docker Desktop 之间的通信。

          步骤 7: 重新安装 Docker Desktop

          如果上述步骤都不能解决问题,考虑卸载并重新安装 Docker Desktop。

          希望这些步骤能帮助你解决问题!如果问题依旧存在,请提供更多信息以便进一步分析。


          以上为生成回答,仅供参考~

          我是小伊,已接入ChatGpt,所有回复,仅供参考~

          1 条回复 最后回复 回复 引用 0
          • 1
            单亲俩娃爸
            最后由 编辑

            哥们你只拉了镜像但是没有用docker run构建容器啊
            d6c26b14-ff65-4beb-b0a7-d6e278efe05d-image.png
            建议先看看docker基础的命令,根据自己需求改命令

            1 1 条回复 最后回复 回复 引用 1
            • 1
              单亲俩娃爸 @1003844689
              最后由 编辑

              @1003844689 我的建议的话你docker不熟的话别用docker,直接用鱼总的一键安装脚本本机环境安装,不然你会发现你都学一半了,很多在创建容器的时候该弄的你都没有弄。

              2 1 条回复 最后回复 回复 引用 0
              • 小鱼小
                小鱼 技术大佬 @2944197166
                最后由 编辑

                @2944197166 docker ps -a 看一下是否生成成功

                新书配套视频:https://www.bilibili.com/video/BV1GW42197Ck/

                2 3 条回复 最后回复 回复 引用 0
                • 2
                  2944197166 @1003844689
                  最后由 编辑

                  @1003844689 我就是用的一键安装阿。。但是一件安装完后发现docker desktop里没有显示对应镜像

                  1 条回复 最后回复 回复 引用 0
                  • 2
                    2944197166 @小鱼
                    最后由 编辑

                    @小鱼 wen@wen-ubuntu22:~/Downloads$ docker ps -a
                    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
                    wen@wen-ubuntu22:~/Downloads$
                    没有显示有

                    1 条回复 最后回复 回复 引用 0
                    • 2
                      2944197166 @小鱼
                      最后由 编辑

                      @小鱼
                      noetic1
                      请输入指令控制noetic1: 重启(r) 进入(e) 启动(s) 关闭(c) 删除(d) 测试(t):
                      t
                      Error response from daemon: No such container: noetic1
                      测试显示这个结果

                      1 条回复 最后回复 回复 引用 0
                      • 2
                        2944197166 @小鱼
                        最后由 编辑

                        @小鱼
                        请为你的noetic容器取个名字吧!

                        noetic1
                        收到名字noetic1
                        Run CMD Task:[users]
                        [-]Result:success

                        Run CMD Task:[sudo docker run -dit --name=noetic1 -v /home/wen:/home/wen -v /tmp/.X11-unix:/tmp/.X11-unix --device=/dev/dri/renderD128 -v /dev:/dev -v /dev/dri:/dev/dri --device=/dev/snd -e DISPLAY=unix$DISPLAY -w /home/wen fishros2/ros:noetic-desktop-full]
                        9414b52d58dfd612d37c7f160e7d3f1764ca630f919f5208a6f7d990278d63a1
                        Run CMD Task:[docker exec -it noetic1 /bin/bash -c "echo -e '
                        source /opt/ros/noetic/setup.bash' >> ~/.bashrc" ]
                        Run CMD Task:[xhost +local:]
                        non-network local connections being added to access control list
                        容器生成显示没问题

                        1 1 条回复 最后回复 回复 引用 0
                        • 1
                          单亲俩娃爸 @2944197166
                          最后由 编辑

                          这个我不清楚,我都是自己写Dockerfile构建好镜像run的,没用过一键安装 ,我只是看你上面贴的图只用了docker pull

                          2 1 条回复 最后回复 回复 引用 0
                          • 2
                            2944197166 @1003844689
                            最后由 编辑

                            @1003844689
                            sudo docker pull fishros2/ros:noetic-desktop-full
                            [sudo] wen 的密码:
                            noetic-desktop-full: Pulling from fishros2/ros
                            Digest: sha256:4a7705e75022cc5ff60cecb7b5b40bc16492e94b1391a82ab1dda93ab1436b4c
                            Status: Image is up to date for fishros2/ros:noetic-desktop-full
                            docker.io/fishros2/ros:noetic-desktop-full
                            wen@wen-ubuntu22:~/Downloads$ docker ps -a
                            CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
                            wen@wen-ubuntu22:~/Downloads$ docker image list
                            REPOSITORY TAG IMAGE ID CREATED SIZE
                            wen@wen-ubuntu22:~/Downloads$
                            image显示最新了但是list image就是没有。。

                            1 条回复 最后回复 回复 引用 0
                            • 1
                              18247331205
                              最后由 编辑

                              我也遇到了同样的问题,我发现docker和docker desk-top的容器似乎是两套彼此独立的系统,而且在我这里直接输入docker会选择运行docker desk-top的docker,手动输入sudo docker会运行apt安装的docker,且鱼老板的脚本会默认安装到sudo docker中,我只能在docker desk-top手动安装ros

                              1 条回复 最后回复 回复 引用 0
                              • 第一个帖子
                                最后一个帖子
                              皖ICP备16016415号-7
                              Powered by NodeBB | 鱼香ROS