RK356X Debian/Ubuntu系统安装Docker技术分享

电子说

1.2w人已加入

描述

本文基于IDO-SBC3528主板演示Debian/Ubuntu 系统任何安装Docker,方法适用于RK3568全系列产品。

IDO-SBC3528-V1采用RK3568四核64位开发的智能主板,可作为RK3568开发评估板,支持8G大内存;支持PCIE2.0接口,可扩展大容量固态硬盘;支持双千兆以太网口;支持双频WiFi、蓝牙4.2以上,可扩展4G/5G网络通讯功能;具有丰富的视频输出接口(HDMI2.0/eDP1.3/MIPI1.2/LVDS) ;工业互联接口(RS232/RS485、CAN)。

支持Android11/Debian10/Ubuntu20/Buildroot/麒麟OS/开源鸿蒙等多种操作系统。

内核配置

使用check_config.sh脚本检查当前内核配置是否适配Docker

 

# ./check_config.sh ./kernel/.config
info: reading kernel config from ./kernel/.config ...

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: missing
- CONFIG_KEYS: enabled
- CONFIG_VETH: missing
- CONFIG_BRIDGE: missing
- CONFIG_BRIDGE_NETFILTER: missing
- CONFIG_IP_NF_FILTER: missing
- CONFIG_IP_NF_TARGET_MASQUERADE: missing
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: missing
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: missing
- CONFIG_NETFILTER_XT_MATCH_IPVS: missing
- CONFIG_IP_NF_NAT: missing
- CONFIG_NF_NAT: missing
- CONFIG_POSIX_MQUEUE: missing

Optional Features:
- CONFIG_USER_NS: enabled
- CONFIG_SECCOMP: enabled
- CONFIG_SECCOMP_FILTER: enabled
- CONFIG_CGROUP_PIDS: missing
- CONFIG_MEMCG_SWAP: missing
- CONFIG_MEMCG_SWAP_ENABLED: missing
- CONFIG_BLK_CGROUP: missing
- CONFIG_BLK_DEV_THROTTLING: missing
- CONFIG_CGROUP_PERF: missing
- CONFIG_CGROUP_HUGETLB: missing
- CONFIG_NET_CLS_CGROUP: missing
- CONFIG_CGROUP_NET_PRIO: missing
- CONFIG_CFS_BANDWIDTH: enabled
- CONFIG_FAIR_GROUP_SCHED: enabled
- CONFIG_RT_GROUP_SCHED: missing
- CONFIG_IP_NF_TARGET_REDIRECT: missing
- CONFIG_IP_VS: missing
- CONFIG_IP_VS_NFCT: missing
- CONFIG_IP_VS_PROTO_TCP: missing
- CONFIG_IP_VS_PROTO_UDP: missing
- CONFIG_IP_VS_RR: missing
- CONFIG_SECURITY_SELINUX: missing
- CONFIG_SECURITY_APPARMOR: missing

 

./kernel/.config为当前内核的配置

提示"missing"的选项,需要到kernel目录进行make menuconfig加上,直到执行check_config.sh不再报missing项

内核配置完成后,需重新编译kernel并更新boot分区:

 

# ./build.sh kernel
    安装Docker

 

主板上执行以下命令安装Docker:

 

linaro@linaro-alip:~$ sudo apt-get update
linaro@linaro-alip:~$ curl -sSL https://get.docker.com/ | sudo sh

 

安装过程需要花费大约10分钟

安装完成后查看Docker版本:

 

linaro@linaro-alip:~$ docker -v
Docker version 24.0.2, build cb74dfc
linaro@linaro-alip:~$
    验证
linaro@linaro-alip:~$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
70f5ac315c5a: Pull complete
Digest: sha256:a13ec89cdf897b3e551bd9f89d499db6ff3a7f44c5b9eb8bca40da20eb4ea1fa
Status: Downloaded newer image for hello-world:latest
[ 1228.015617] docker0: port 1(veth9b45dd3) entered blocking state
[ 1228.015735] docker0: port 1(veth9b45dd3) entered disabled state
[ 1228.017169] device veth9b45dd3 entered promiscuous mode
[ 1228.027619] IPv6: ADDRCONF(NETDEV_UP): veth9b45dd3: link is not ready
[ 1228.343879] cgroup: cgroup: disabling cgroup2 socket matching due to net_prio or net_cls activation
[ 1228.596774] eth0: renamed from vethc46e61e
[ 1228.611961] IPv6: ADDRCONF(NETDEV_CHANGE): veth9b45dd3: link becomes ready
[ 1228.612131] docker0: port 1(veth9b45dd3) entered blocking state
[ 1228.612147] docker0: port 1(veth9b45dd3) entered forwarding state
[ 1228.612346] IPv6: ADDRCONF(NETDEV_CHANGE): docker0: link becomes ready

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (arm64v8)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-starte

 

提示"Hello from Docker!"说明Docker验证通过。






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分