RK3399ProD下安装Docker

瑞芯微出的RK3399ProD,使用官方提供的linux系统(debian10)时,默认内核docker相关配置没打开,需要重新编译内核才可支持docker 运行,否则docker 运行时候会报错 failed to create endpoint nervous_galileo on network bridge: failed to add the host (vetha8e5fed) <=> sandbox (veth94cd799) pair interfaces: operation not supported,笔者将这个踩坑的过程记录下,希望能帮助到遇到类似问题的小伙伴。

修改linux内核,重新编译

下载内核文件,参考官网说明:https://t.rock-chips.com/wiki.php?filename=%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91/Kernel

git clone https://github.com/rockchip-toybrick/kernel.git -b stable

替换内核文件 arch/arm64/configs/rockchip_linux_defconfig
链接:https://pan.baidu.com/s/1_5eCkhPYBIIJ3ut4vvfCYg
提取码:48eq

kernel

然后按照官网说明重新编译即可
./make.sh linux prod

boot_linux.img即为新编译好的支持docker的新内核
boot_linux.img

笔者也将编译好的内核镜像文件分享出来,有需要请小伙伴们下载使用。
链接:https://pan.baidu.com/s/1qOlOUjv_jNJNMNK4SxSGMw
提取码:3mg0
使用瑞芯微开发工具重新下载镜像,只需下载内核即可,其它项不要勾选
瑞芯微开发工具

至此已经完成内核修改编译,重启系统即可。

安装docker

参考官方文档 :https://docs.docker.com/engine/install/debian/#install-using-the-repository

# 更新apt包索引并安装包以允许apt通过 HTTPS 使用存储库
sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
# 添加Docker官方的GPG密钥
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 使用以下命令设置稳定存储库 ,lsb_release -cs子命令会返回您的 Debian 发行版的名称,例如helium. 有时,在像 BunsenLabs Linux 这样的发行版中,您可能需要更改$(lsb_release -cs) 为您的父 Debian 发行版。例如,如果您使用的是 BunsenLabs Linux Helium,则可以使用stretch. Docker 不对未经测试和不受支持的 Debian 发行版提供任何保证。
echo \
  "deb [arch=arm64 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
#更新apt包索引,安装最新版本的Docker Engine和containerd 
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

稍等片刻即可完成docker安装

总结

本文主要介绍通过编译linux核心来解决rk3399pro运行docker引擎的问题。

推荐阅读更多精彩内容