进入小车Docker

本节课程针对树莓派5主板和Jetson-Nano主板,Orin主板无需进入docker。

概念理解:

我们将树莓派/jetson nano 主环境中称为宿主机,Docker 环境称为Docker,其中树莓派/jetson nano 除通讯代理在宿主机内运行外,其余所有程序均在Docker 内运行。宿主机终端显示的用户名:jetson/pi ,Docker 中显示的是用户名为:root。

1、首次进入docker

树莓派5和Jetson-Nano主板开机会自动进入Docker手柄自启动程序(Docker_M3Pro_Joy.sh),并且会将接在USB上的手柄挂载进入Docker,由于为了确保手柄自启动程序的顺利运行,所以此Docker 启动前并未挂载语音模块、myserial 等设备,所以在后续运行程序不能使用此Docker ,需要用脚本启动新的挂载了多个设备的Docker。

进入Docker(进入前确保语音模块、控制板都有接在主板/HUB板上)

进入docker终端后,当前目录是/,一般的,我们需要在/root目录下进行输入指令,因此,在docker终端输入cd,然后按下回车,即可进入到/root目录下查看文件。

多终端进入相同容器

由于开机自启动的docker 只有一个终端,无法在一个终端同时输入其余指令,我们需要知道怎么样使用多个终端同时在一个容器内运行。

在树莓派5和Jetson-Nano中输入以下指令,查询首次进入docker中生成的容器的相关信息,

image-20250702164736753

如上图所示,出现了两个内容,第一个容器的镜像是192.168.2.51:5000/micro-ros-agent:humble,名字是vibrant_ptolemy,这个容器是连接agent代理,并且不是我们首次进入的小车docker。第二个容器,显示的镜像是192.168.2.51:5000/m3pro:2.1.0,与我们的Docker_M3Pro.sh中的镜像名字对应上,说明这个是刚才执行sh Docker_M3Pro.sh生成的容器,它的名字是loving_kirch,这里每个人生成的名字都不一样,根据实际情况查询的为准,只需要是镜像名字能够对上即可。我们后边根据这个容器名字来进入docker。

在宿主机内输入以下指令同时进入此容器,

loving_kirch根据实际生成的容器名字进行修改。按下回车进入docker终端,这个就是我们首次启动进入的docker容器的终端,后续的程序指令就需要在这个docker容器的终端中输入。

2、非首次进入

2.1重启后进入之前的docker容器

有时候,我们对首次进入的docker容器里边的代码进行修改,然后重启或者关机了。这时候如果按照首次进入docker的方法进入,会发现之前做的修改都不存在了,只是因为我们重新启动了一个新的docker容器,里边自然是没有我们之前做的修改。如果我们关机后需要再次进入首次进入的docker容器,那么就需要先按照以下步骤进入:查询docker容器名字重启docker容器,进入docker容器

输入以下指令查询首次进入的docker,

这里就罗列出所有的容器,包括正在运行或者没有在运行的容器,我们根据首次进入docker容器的时候,来确认需要启动哪个容器,比如我在3周前启动了小车docker,这里我查询到这个容器的名字是loving_kirch,如下图所示,

image-20250702170658941

然后在终端输入下指令重启小车docker容器,

loving_kirch根据实际查询的容器名字进行修改。这条指令只需要在小车重启后启动一次

终端输入以下指令进入小车docker容器,

按下回车进入docker终端,这个就是我们首次启动进入的docker容器的终端,后续的程序指令就需要在这个docker容器的终端中输入。

如果需要重启后进入终端,运行的程序需要显示图形界面的话,那么就需要在小车的终端中输入以下指令,

image-20250702172733325

2.2进入新的docker 容器

1.确保现有的Docker 容器关闭,运行以下指令启用新的容器

2.运行上面的多终端进入相同容器程序进入相同docker