本帖最后由 翠花儿 于 2021-5-25 18:08 编辑
本文档适合ITOP-3399开发板,我们将在itop-3399开发板上的Ubuntu上安装Docker,Ubuntu是64位的。本文档配套的压缩包里面有相关配套资料,在网盘资料的“iTOP-3399开发资料汇总(不含光盘内容)\10_iTOP-3399开发板Linux系统开发\Ubuntu系统安装docker(开发板Ubuntu-64位系统)”,如下图所示: 1 内核配置32.1.1 检测内核本文档配套的压缩包里面有01-检测内核脚本topeet-check-config.sh,此脚本可以检测在内核模块中Docker所需的内核模块是否配置。瑞芯微平台默认不支持 docker 容器,所以需要打开 kernel 中相关 docker 配置。我们将该脚本拷贝到内核源码kernel目录下,并运行该脚本,如下图所示: 检测完发现以下内核模块没有被配置,如下图所示,接下来我们将对缺失的模块进行配置。 1.2 配置内核模块1.2.1 Ubuntu换国内源虚拟机上的Ubuntu换国内源 输入以下的命令备份原来的源 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 输入以下命令更换源 sudo getdit /etc/apt/sources.list 文件中添加阿里源(复制以下内容,替换原内容) deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main restricted universe multiverse 输入以下命令更新源 sudo apt-get update 1.2.2 配置AUFS模块1 输入以下命令下载AUFS源码包,此过程较长,要耐心等待。 git clone git://github.com/sfjro/aufs4-standalone.git 2 阅读README,根据内核版本切换到对应分支 cd aufs4-standalone git branch -a git checkout origin/aufs4.4 3 拷贝aufs4-standalone文件夹下的文件到linux源码rk3399_linux_sdk_v2.0/kernel目录下,特别要注意的是如果是同名的文件,需要手动将文件里的内容添加到原文件。此过程一定要小心操作,确保文件全部拷进了源码。 4 拷贝完成之后,进入到rk3399_linux_sdk_v2.0/kernel目录下,然后打补丁 patch -p1 < aufs4-base.patch patch -p1 < aufs4-kbuild.patch patch -p1 < aufs4-loopback.patch patch -p1 < aufs4-mmap.patch patch -p1 < aufs4-standalone.patch patch -p1 < lockdep-debug.patch patch -p1 < tmpfs-idr.patch patch -p1 < vfs-ino.patch 特别要注意的是要留意是否成功打入补丁,可以参考补丁文件的内容,手动修改内核文件。 AUFS补丁打完后,运行检测内核的脚本,查看是否AUFS配置成功。接下来编译内核源码,查看下AUFS模块加入内核后,内核源码是否会报错,如果编译出错,再根据错误信息修改。 1.2.3 配置其他模块配置其他模块,可以根据检测内核脚本提供的信息在menuconfig中进行配置,如下图所示: 选中load,修改配置文件为arch/arm64/configs/rockchip_linux_defconfig,在此操作之前要及时备份。 按住键盘上的 / 键,可以在menuconfig中进行搜索。我们依次搜索内核没有配置的模块,会提示此模块是否配置以及如何配置。配置完一个模块,必须保存,然后运行检测脚本,查看是否此模块配置成功。 所有模块配置完毕,输入命令linux编译源码,编译命令请参考14.2章节 Ubuntu16系统编译。 32.2 Docker安装32.2.1 查看内核版本我们已经编译生成了update.img镜像,将该镜像烧写到ITOP-3399开发板上面,系统启动后如下图所示: 输入以下命令查看linux系统版本命令 uname -a getconf LONG_BIT 2.2 安装Docker1 默认的系统的镜像源是阿里云,同样可以使用其他源,比如清华源,中科大。Ubuntu的系统源文件位于/etc/apt/sources.list,可以修改此文件添加镜像源,修改前注意要备份。 2更新apt索引包,输入以下命令: apt update 3 如果之前安装过docker,先拆卸可能存在的旧版本,输入以下命令: apt remove docker docker-engine docker-ce docker.io 4在安装DOCKER之前,要将Ubuntu系统扩展根目录,请参考二十九章节进行扩展Ubuntu根目录。这一步非常重要,不可跳过。扩展完如下图所示。 5 安装以下包以使apt可以通过HTTPS使用存储库,输入以下命令: apt install -y apt-transport-https ca-certificates curl software-properties-common 6 使用阿里云的docker源进行安装的话要添加对应源的密钥,添加docker的密钥输入以下命令: curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - 7 在ubuntu的系统源中添加对应的docker源,输入以下命令,返回OK即可。 add-apt-repository "deb [arch=arm64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" 8 再次更新 apt 包索引 apt update 9 安装最新版本的DOCKER CE apt install docker-ce 如果第9步安装出现404或者没有找到包的情况,说明在第7步的时候镜像源配置出错,或者是当前的镜像源没有同步到最新的版本。 10 输入以下命令查看docker的状态,如下图所示: systemctl status docker 2.3 测试Docker输入指令,出现下图表示 docker 安装成功: docker run hello-world
|