本文介绍Ubuntu系统安装Docker方法,使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持开源鸿蒙OpenHarmony3.2-5.0,以及Linux、Android等操作系统,接口丰富,开发评估快人一步!
内核配置
1、使用check_config.sh脚本检查当前内核配置是否适配Docker,该脚本可从github下载:
https://github.com/opencontainers/runc/blob/main/script/check-config.sh
2、将下载好的配置脚本文件放到如下图目录:

3、配置一个带Docker配置的内核文件
kernel目录下会有一个.config文件,该文件记录了内核目前的配置,最终编译使能的配置也是根据该.config文件,而这个.config文件的内容由 kernel/arch/arm64/configs 中的配置文件决定。
cd kernel/arch/arm64/configs cp rockchip_linux_evb3568v1_defconfig rockchip_linux_evb3568v1_docker_defconfig
执行我们下载好的脚本,检测新复制的defconfig文件,然后编辑该defconfig文件,将missing的选项添加进去,直到./check_configs.ch不出现missing。
c./check_config.sh ./kernel/arch/arm64/configs/rockchip_linux_evb3568v1_docker_defconfig info: reading kernel config from arch/arm64/configs/rockchip_linux_evb3568v1_defconfig ... Generally Necessary: - cgroup hierarchy: properly mounted [/sys/fs/cgroup] - apparmor: enabled and tools installed - CONFIG_NAMESPACES: enabled - CONFIG_NET_NS: enabled - CONFIG_PID_NS: enabled - CONFIG_IPC_NS: enabled - CONFIG_UTS_NS: enabled - CONFIG_CGROUPS: enabled - CONFIG_CGROUP_CPUACCT: enabled - CONFIG_CGROUP_DEVICE: enabled - CONFIG_CGROUP_FREEZER: enabled - CONFIG_CGROUP_SCHED: enabled - CONFIG_CPUSETS: enabled - CONFIG_MEMCG: enabled - CONFIG_KEYS: enabled - CONFIG_VETH: enabled - CONFIG_BRIDGE: enabled - CONFIG_BRIDGE_NETFILTER: enabled - CONFIG_IP_NF_FILTER: enabled - CONFIG_IP_NF_TARGET_MASQUERADE: enabled - CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled - CONFIG_NETFILTER_XT_MATCH_COMMENT: missing - CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled - CONFIG_NETFILTER_XT_MATCH_IPVS: enabled - CONFIG_IP_NF_NAT: enabled - CONFIG_NF_NAT: enabled - CONFIG_POSIX_MQUEUE: enabled - CONFIG_OVERLAY_FS: enabled Optional Features: - CONFIG_USER_NS: enabled - CONFIG_SECCOMP: enabled - CONFIG_SECCOMP_FILTER: enabled - CONFIG_CGROUP_PIDS: enabled - CONFIG_MEMCG_SWAP: enabled - CONFIG_MEMCG_SWAP_ENABLED: missing (note that cgroup swap accounting is not enabled in your kernel config, you can enable it by setting boot option "swapaccount=1") - CONFIG_BLK_CGROUP_IOCOST: missing - CONFIG_BLK_CGROUP: enabled - CONFIG_BLK_DEV_THROTTLING: enabled - CONFIG_CGROUP_PERF: enabled - CONFIG_CGROUP_HUGETLB: enabled - CONFIG_NET_CLS_CGROUP: enabled - CONFIG_CGROUP_NET_PRIO: enabled - CONFIG_CFS_BANDWIDTH: enabled - CONFIG_FAIR_GROUP_SCHED: enabled - CONFIG_RT_GROUP_SCHED: enabled - CONFIG_IP_NF_TARGET_REDIRECT: enabled - CONFIG_IP_VS: enabled - CONFIG_IP_VS_NFCT: enabled - CONFIG_IP_VS_PROTO_TCP: enabled - CONFIG_IP_VS_PROTO_UDP: enabled - CONFIG_IP_VS_RR: enabled - CONFIG_SECURITY_SELINUX: enabled - CONFIG_SECURITY_APPARMOR: enabled - CONFIG_CHECKPOINT_RESTORE: missing #can1接收
这里是我们适配好的内核配置(提取码:1234):https://pan.baidu.com/s/1HQdfggCQp0yMHUca4pV6qQ?pwd=1234
修改编译时的配置文件
在编译之前通常需要根据自己的需求选择相应的选项,也就是在选择编译时要用到的配置文件。

进入 SDK根目录
/device/rockchip/rk3566_rk3568,因为我们选择的7,对应的是红框处文件,要修改这个文件:

执行命令
vim rockchip_rk3568_EVB3568V1_HDMI_defconfig,将原RK_KERNEL注释掉,重新添加一条RK_KERNEL,后面填入配置过Docker的内核配置文件名,
rockchip_linux_evb3568v1_docker_defconfig的配置项会写入内核.config文件,这样配置就生效了。

单独编译内核并烧录
在SDK根目录下执行./build.sh kernel如图可以看到内核的配置文件已经替换为适配了Docker的。
注意:一定要先./build.sh lunch选择自己修改过带Docker的配置文件,不然使用的是不带Docker原配置。

内核编译成功(这里为了节省时间选择单独编译内核):
注意:若要编译整包固件 还需执行
export RK_ROOTFS_SYSTEM=ubuntu20,然后直接执行./build.sh即可。
具体可以到触觉智能 官网中选择对应产品,进入到资料下载中心,查阅相关SDK编译、固件烧录手册。

最后单独烧入编译好的boot.img
注意:当设备进入loader模式下,点击“设备分区表”后更新下载地址,即可得到对应分区下载地址,随后单独烧入boot.img(内核镜像)即可。

安装Docker并验证
输入以下命令:
apt-get update apt-get install docker.io
安装成功:

验证是否成功安装
root@ido:~# docker run hello-world 报错:docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. See 'docker run --help'.
配置Docker的加速地址。
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://do.nark.eu.org", "https://dc.j8.work", "https://docker.m.daocloud.io", "https://dockerproxy.com", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn" ] } EOF sudo systemctl daemon-reload #当修改了某些服务的配置后,执行该命令使修改项立即生效 sudo systemctl restart docker systemctl status docker
详细介绍链接如下:
https://blog.csdn.net/oyjl__/article/details/143522664

如上图所示,sudo systemctl restart docker时会出现错误。
root@ido:~# dockerd --debug INFO[2025-02-27T02:47:40.691781099Z] Starting up mkdir /var/lib/docker: file exists #这里发现已经存在docker,需要删除掉让docker再重新生成一次 rm /var/lib/docker #再次执行如下命令 sudo systemctl daemon-reload sudo systemctl restart docker sudo systemctl status docker
如图可以看到Docker已经处在运行状态。

执行docker info可以看到Docker加速地址已经添加上去了。

再次执行docker run hello-world可以发现Docker已经正常运行成功。

-
嵌入式开发
+关注
关注
18文章
1078浏览量
48954 -
Ubuntu
+关注
关注
5文章
595浏览量
31511 -
Docker
+关注
关注
0文章
515浏览量
13052 -
docker容器
+关注
关注
0文章
31浏览量
3507 -
RK3568
+关注
关注
5文章
591浏览量
6538
发布评论请先 登录
触觉智能RK3568_OpenHarmony开发板适配

RK356X Debian/Ubuntu系统安装Docker技术分享
Ubuntu20.04取消root账号自动登录的方法,触觉智能RK3568开发板演示

评论