1. 简介rk3588从入门到精通系列专题
开发板:armsom-w3
kernel:5.10.160
os:debian11
本⽂介绍armsom-w3在debian11下如何安装使用docker
2.rockchip 平台系统运行dockerdocker运行对内核配置有要求,需要 kernel 开启 cgroups、namespace、netfilter、overlayfs 等功能的⽀持,这些配置打开才满足docker运行的要求。
armsom发布的普通固件一般不满足 docker 的运行要求,如果有需求可以用我们配置过的内核固件,或者按照下文自己配置。
2.1 kernel配置docker开源团队提供了一个检测脚本,用以检测内核配置是否符合docker运行的要求,下载脚本到sdk源码kernel目录下。
输入如下命令:
chmod 777 check-config.sh ./check-config.sh .config
注意:.config需要在内核配置完后才会生成
得到如下打印:
lhd@ydtx:~/project_code/3588/3588_linux5.10_v1.0.5/kernel$ ./check-config.sh .config info: reading kernel config from .config ... generally necessary: - cgroup hierarchy: cgroupv2 controllers: - cpu: available - cpuset: available - io: available - memory: available - pids: available - 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_conntrack: enabled - config_netfilter_xt_match_ipvs: enabled - config_netfilter_xt_mark: enabled - config_ip_nf_nat: enabled - config_nf_nat: enabled - config_posix_mqueue: enabled - config_cgroup_bpf: enabled optional features: - config_user_ns: enabled - config_seccomp: enabled - config_seccomp_filter: enabled - config_cgroup_pids: enabled - config_memcg_swap: enabled (cgroup swap accounting is currently enabled) - config_blk_cgroup: enabled - config_blk_dev_throttling: missing - config_cgroup_perf: enabled - config_cgroup_hugetlb: missing - config_net_cls_cgroup: enabled (as module) - config_cgroup_net_prio: missing - config_cfs_bandwidth: enabled - config_fair_group_sched: enabled - config_rt_group_sched: missing - config_ip_nf_target_redirect: enabled (as module) - 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 (as module) - config_security_selinux: missing - config_security_apparmor: missing - config_ext4_fs: enabled - config_ext4_fs_posix_acl: enabled - config_ext4_fs_security: enabled - network drivers: - overlay: - config_vxlan: enabled (as module) - config_bridge_vlan_filtering: enabled optional (for encrypted networks): - config_crypto: enabled - config_crypto_aead: enabled - config_crypto_gcm: enabled - config_crypto_seqiv: enabled (as module) - config_crypto_ghash: enabled - config_xfrm: enabled - config_xfrm_user: enabled - config_xfrm_algo: enabled - config_inet_esp: enabled (as module) - ipvlan: - config_ipvlan: enabled (as module) - macvlan: - config_macvlan: enabled (as module) - config_dummy: enabled (as module) - ftp,tftp client in container: - config_nf_nat_ftp: enabled (as module) - config_nf_conntrack_ftp: enabled (as module) - config_nf_nat_tftp: enabled (as module) - config_nf_conntrack_tftp: enabled (as module) - storage drivers: - aufs: - config_aufs_fs: missing - btrfs: - config_btrfs_fs: missing - config_btrfs_fs_posix_acl: missing - devicemapper: - config_blk_dev_dm: enabled (as module) - config_dm_thin_provisioning: enabled (as module) - overlay: - config_overlay_fs: enabled (as module) - zfs: - /dev/zfs: present - zfs command: missing - zpool command: missing limits: - /proc/sys/kernel/keys/root_maxkeys: 1000000
generally necessary是内核必须配置项,optional features是可选配置项
如果检测generally necessary下面的结果是missing或者enabled (as module),都可以去对应配置那设置为y。
2.2 debian 配置debian 默认使⽤ iptables-nft,⽽ docker 默认使⽤ iptableslegacy,故需要配置 iptables 使⽤ legacy 版本,可以通过以下命令进⾏切换:
# 使⽤ iptables-legacy update-alternatives --set iptables /usr/sbin/iptables-legacy update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy # 使⽤ iptables-nft update-alternatives --set iptables /usr/sbin/iptables-nft update-alternatives --set ip6tables /usr/sbin/ip6tables-nft
2.3 安装docker在rk3588上安装docker,按照以下步骤进行操作:
1.更新系统:
在开始安装docker之前,确保系统是最新的。运行以下命令:
sudo apt update sudo apt upgrade
2.安装依赖项:
安装docker所需的一些依赖项:
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
3.添加docker官方gpg密钥:
通过添加docker官方的gpg密钥来信任官方存储库:
curl -fssl https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
4.设置docker存储库:
添加docker存储库到apt源列表中:
echo deb [signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
5.安装docker引擎:
更新apt软件包索引并安装docker引擎:
sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io
6.启动docker服务:
安装完成后,启动docker服务:
sudo systemctl start docker
还可以将docker设置为在系统启动时自动启动:
sudo systemctl enable docker
7.验证安装:
运行以下命令以验证docker是否正确安装:
sudo docker pull hello-world sudo docker run hello-world
如果一切顺利,应该能够看到hello-world容器成功运行。
不服谷歌,微软推出新的黑科技
智慧城市的治理模式是否会因为疫情而改变
示波器可以直接测交流220V吗?
Veritas两款旗舰产品获得AWS存储能力认证
关于Graphcore 采用Sofics 16nm FinFET ESD 解决方案的介绍和分析
ArmSoM-W3应用开发之安装docker
空气开关合不上闸故障修理
动力电池技术难关仍待突破_动力电池报废高峰将至
区块链必须在金融之外运作
镀24K金'雪花'提高石墨的电学性能
环境光传感芯片在智能照明中的应用
功率电感选型方法,功率电感选型需要注意哪些参数
如何推进互联网+行动等多方面新型基础设施的建设
5G将助力PCB行业进一步发展,繁荣PCB市场
华为云智能编程助手助力哈尔滨工业大学(深圳)学子,引领软件研发新趋势
紫外辅助清洗对非晶氧化物半导体薄膜晶体管稳定性的影响
简单介绍塑料薄膜瑕疵检测系统的检测方法及特点
比亚迪汉连续3个月销量破万 持续领跑中国品牌中大型轿车市场
现代通信系统的差分电路设计与性能分析
苹果加入WPC就意味着无线充电iPhone不远了?