鱼香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
    833
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 2
      2944197166
      最后由 编辑

      1、wen@wenubuntu:~$ sudo docker pull fishros2/ros:noetic-desktop-full
      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@wenubuntu:~$ docker images
      REPOSITORY TAG IMAGE ID CREATED SIZE
      osrf/ros noetic-desktop-full 5a2576cc4b0d 5 weeks ago 3.44GB
      ubuntu latest 35a88802559d 2 months ago 78.1MB
      ubuntu 20.04 5f5250218d28 2 months ago 72.8MB
      ros noetic-robot 196b21611ecc 3 years ago 983MB
      6eeddef4-0b11-4bf8-b856-d70b840172bb-image.png

      输入指令控制显示Error response from daemon: No such container: noetic1 Error: failed to start containers: noetic1

      2、
      ================================4.生成容器======================================
      请为你的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]
      2c5bd4e010b37a7967cb25f225788a3c88c9e125dc746862d08b463a20f731a4
      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

      生成容器成功,但container中没有显示对应容器noetic1

      28f53bcc-efcd-4f5b-9cdb-54a3ef51a9c8-image.png

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

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

        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