陈工-创龙科技 发表于 2026-7-6 15:45:03

SBC-TL3588 单板机 / EPC-TL3588 工控机 Docker 开发手册(二)

本帖最后由 陈工-创龙科技 于 2026-7-6 15:47 编辑

4.下载镜像并运行容器下载镜像前,需要先开启Docker相关服务,并确保存储驱动配置正确。
(1)配置Docker存储驱动不同系统环境可能导致Docker默认存储驱动(overlayfs/overlay2)不一致,执行以下命令,显式指定Docker默认存储驱动为overlay2,以保证一致性。Target# vi /etc/docker/daemon.json //编辑Docker工具配置文件

https://file1.elecfans.com/web3/M00/69/52/wKgZPGpLQrmAIVEJAAAG_S82yp0329.png
图 29
请在daemon.json中添加如下配置内容:
{      "storage-driver": "overlay2"}
https://file1.elecfans.com/web3/M00/69/52/wKgZPGpLQsqABC1ZAAAHbuLMw_A305.png
图 30


(2)开启Docker相关服务Target# systemctl enable docker //开启docker服务Target# systemctl enable containerd //开启containerd服务(docker容器)
https://file1.elecfans.com/web3/M00/69/52/wKgZPGpLQtmAHxiPAADH9dRbwDY250.png
图 31
https://file1.elecfans.com/web3/M00/69/52/wKgZPGpLQtmAS4YjAAAVU1GipwA284.png
图 32


4.1下载单个镜像并运行容器(1)请使用网线将单板机任意LAN网口连接至路由器,并确保和Ubuntu处于同一网络下,单板机上电启动,执行如下命令下载镜像并列举出下载后的镜像。
Target# docker pull 192.168.12.69:5000/led_flash:v1.0 //下载镜像Target# docker images //列举已下载的镜像
https://file1.elecfans.com/web3/M00/69/4D/wKgZO2pLQwmABCwNAAB2MuCnwO4861.png
图 33
若出现如下错误,请执行如下命令,通过修改"/etc/docker/daemon.json"文件来解决此问题,修改保存后,重新启动dockerd守护进程。
https://file1.elecfans.com/web3/M00/69/4D/wKgZO2pLQxSAM7okAAAlQPvRpgM500.png
图 34
Target# vi /etc/docker/daemon.json
https://file1.elecfans.com/web3/M00/69/52/wKgZPGpLQrmAIVEJAAAG_S82yp0329.png
图 35
请在daemon.json中添加如下配置内容:
{    "insecure-registries": ["192.168.12.69:5000"]}
https://file1.elecfans.com/web3/M00/69/52/wKgZPGpLQyqADbnUAAAM0mN3u6w211.png
图 36
Target# systemctl restart docker
https://file1.elecfans.com/web3/M00/69/4D/wKgZO2pLQzOAchirAAAH9KssX5E435.png
图 37
(2)修改标签名称。Target# docker tag 192.168.12.69:5000/led_flash:v1.0 led_flash
https://file1.elecfans.com/web3/M00/69/52/wKgZPGpLQ4KAEHbRAAApXv5MK8I413.png
图 38
(3)删除旧标签名称。Target# docker rmi 192.168.12.69:5000/led_flash:v1.0
https://file1.elecfans.com/web3/M00/69/4D/wKgZO2pLQ4yAXheUAAA5BX4eCSg429.png
图 39
(4)创建并启动容器。Target# docker run -itd --name led_flash --platform linux/arm/v8 -v /sys/:/sys led_flash参数说明:-itd:以交互模式运行容器,并将容器的标准输入连接到交互终端,以守护进程模式运行容器;--platform:指定容器运行的平台;--name:为容器指定一个名称;-v:映射卷(将主机的目录"/sys"映射至容器的"/sys");led_flash:镜像名字。
https://file1.elecfans.com/web3/M00/69/4D/wKgZO2pLQ5-ANuPRAABbX2u2xsY741.png
图 40
容器启动完成后,单板机用户LED1、LED2灯闪烁。执行如下命令,可查看当前容器占用资源情况。"MEM USAGE"表示容器占用内存;"LIMIT"表示容器可使用的最大内存。Target# docker stats
https://file1.elecfans.com/web3/M00/69/53/wKgZPGpLQ76AHQW0AAAFSvBku40070.png
图 41
https://file1.elecfans.com/web3/M00/69/4E/wKgZO2pLQ76AbqegAAAT_9Lw3xk711.png
图 42
(5)容器的基本操作。执行如下命令,查看正在运行的容器并进入容器。Target# docker psTarget# docker exec -it led_flash /bin/bash参数说明:-i:以交互模式运行容器,通常与-t同时使用;-t:为容器重新分配一个伪输入终端,通常与-i同时使用;led_flash:容器名称,以实际"NAMES"为准;/bin/bash:在容器内执行"/bin/bash"命令。
https://file1.elecfans.com/web3/M00/69/53/wKgZPGpLQ-mAU_ilAAAebiLTXFw510.png
图 43
执行如下命令,退出容器。Bash# exit
https://file1.elecfans.com/web3/M00/69/4E/wKgZO2pLQ_SARR3eAAAPaFAc5XI640.png
图 44
执行如下命令,停止容器。此时,单板机用户LED1、LED2灯不再闪烁。Target#   docker stop led_flash
https://file1.elecfans.com/web3/M00/69/53/wKgZPGpLRAKAQO1yAAArsuBDFKg033.png
图 45
执行如下命令,启动容器。此时,单板机用户LED1、LED2灯闪烁。Target# docker start led_flash
https://file1.elecfans.com/web3/M00/69/4E/wKgZO2pLRBKAcopNAAA6b3o28Yk462.png
图 46
4.2下载多个镜像并运行容器
(1)请使用网线将单板机任意LAN网口连接至路由器,并确保和Ubuntu处于同一网络下,单板机上电启动,执行如下命令下载镜像并列举出下载后的镜像。Target# docker pull 192.168.12.69:5000/docker_container_1_echo.sh:v1.0 //下载镜像,192.168.13.36为Ubuntu的IP地址Target# docker pull 192.168.12.69:5000/docker_container_2_echo.sh:v1.0Target# docker pull 192.168.12.69:5000/docker_container_3_echo.sh:v1.0Target# docker images //列举已下载的镜像备注:由于led_flash镜像已在“下载单个镜像并运行容器”章节中下载、创建并启动容器,因此本章节不再演示。
https://file1.elecfans.com/web3/M00/69/4E/wKgZO2pLRB2AES7_AADrAbHjfkU756.png
图 47
(2)修改标签名称。Target# docker tag 192.168.12.69:5000/docker_container_1_echo.sh:v1.0 container_1_echoTarget# docker tag 192.168.12.69:5000/docker_container_2_echo.sh:v1.0 container_2_echoTarget# docker tag 192.168.12.69:5000/docker_container_3_echo.sh:v1.0 container_3_echo
https://file1.elecfans.com/web3/M00/69/53/wKgZPGpLRCmAEAOiAACe_-bXKTU428.png
图 48
(3)删除旧标签名称。Target# docker rmi 192.168.12.69:5000/docker_container_1_echo.sh:v1.0Target# docker rmi 192.168.12.69:5000/docker_container_2_echo.sh:v1.0Target# docker rmi 192.168.12.69:5000/docker_container_3_echo.sh:v1.0
https://file1.elecfans.com/web3/M00/69/53/wKgZPGpLRDWAXAaOAACe6EF7J6g023.png
图 49
(4)执行如下命令,创建并启动容器。Target# docker run -itd --platform linux/arm/v8 --name docker_container_1_echo container_1_echo /bin/bashTarget# docker run -itd --platform linux/arm/v8 --name docker_container_2_echo container_2_echo /bin/bashTarget# docker run -itd --platform linux/arm/v8 --name docker_container_3_echo container_3_echo /bin/bash参数说明:-itd:以交互模式运行容器,并将容器的标准输入连接到交互终端,以守护进程模式运行容器;
--platform:指定容器运行的平台;--name:为容器指定一个名称;container_1_echo、container_2_echo、container_3_echo:镜像名称。/bin/bash:执行/bin/bash命令阻塞docker容器,防止容器自动退出,以便能进入容器运行脚本。
https://file1.elecfans.com/web3/M00/69/53/wKgZPGpLREaAeDCNAAD1RIoBPOU164.png
图 50
容器启动完成后,可执行如下命令查看当前容器占用资源情况。Target# docker stats
https://file1.elecfans.com/web3/M00/69/53/wKgZPGpLRFOAUBltAAAa44R9n5I607.png
图 51
https://file1.elecfans.com/web3/M00/69/4E/wKgZO2pLRF6Aa5dTAAAyquZ95qY756.png
图 52
(5)容器的基本操作执行如下命令,查看正在运行的容器,并进入"docker_container_2_echo"容器。备注:"docker_container_1_echo"、"docker_container_3_echo"容器可参考该操作进行测试。Target# docker psTarget# docker exec -it docker_container_2_echo /bin/bash参数说明:-i:以交互模式运行容器,通常与-t同时使用;-t:为容器重新分配一个伪输入终端,通常与-i同时使用;docker_container_2_echo:容器ID,以实际"NAMES"为准;/bin/bash:在容器内执行"/bin/bash"命令。
https://file1.elecfans.com/web3/M00/69/53/wKgZPGpLRHOAI1hpAABGakcZImc495.png
图 53
执行如下命令,可查看脚本打印信息。Target# ./docker_container_2_echo.sh
https://file1.elecfans.com/web3/M00/69/53/wKgZPGpLRHyAGhUwAAAJMuxwFak267.png
图 54
执行如下命令,退出该容器。Bash# exit
https://file1.elecfans.com/web3/M00/69/53/wKgZPGpLRImAIVfKAAAZVM7EUEw688.png
图 55
附录:磁盘空间占用说明
本附录主要说明安装Docker镜像前后对单板机系统磁盘空间资源占用情况以及内存占用情况。1.未下载Docker镜像
进入单板机系统,执行如下命令,查看当前系统未下载Docker镜像时的磁盘使用情况。Target# df -h
https://file1.elecfans.com/web3/M00/69/53/wKgZPGpLRJeATMCvAAAoJh-yHqk184.png
图 56
2.已下载Docker镜像
执行如下命令,查看系统已下载4个Docker镜像时的磁盘使用情况以及Docker磁盘空间使用情况。
Target# df -hTarget# docker system df //查看Docker磁盘空间使用情况
https://file1.elecfans.com/web3/M00/69/4E/wKgZO2pLRKqAdT06AACAm3sBvsg326.png
图 57
https://file1.elecfans.com/web3/M00/69/53/wKgZPGpLRKqAYBfjAAAbn2iWJ6Y918.png
图 58
可以查看到4个Docker镜像与容器占用内存的总大小约为1.22GByte。由于构建Docker镜像的文件系统是同一个,而Docker镜像中相同的内容会重叠在一起,不需重新占用内存,因此4个Docker镜像和容器占用的内存总大小约为1.22GByte。
页: [1]
查看完整版本: SBC-TL3588 单板机 / EPC-TL3588 工控机 Docker 开发手册(二)