在使用迅为 RK3588 开发板的时候,我们一般采用的是虚拟机安装 Ubuntu20.04 来编译 Android 源码或者 linux 源码,但是编译源码最让人头疼的是主机环境问题。假如我手上有很 多块开发板,每个开发板都使用不同的编译环境,而我本地电脑已经有一个编译环境了,那怎 么办呢?
有没有一种统一,虚拟的软件硬件平台,客户可以直接使用这个平台来编译源码?
答案是有的,像这样的平台就是容器,容器有很多种,Docker 是其中比较好用的。
Ubuntu 安装 Docker
接下来我们在虚拟机的 Ubuntu(任何版本)中安装 docker。
1.2.1 设置 Docker 仓库
(1)更新 apt 包索引,输入以下命令:
sudo apt-get update
(2)安装 apt 依赖包,用于通过 HTTPS 来获取仓库,输入以下命令:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
(3)添加 Docker 的官方 GPG 密钥,输入以下命令:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
(4)9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后 8 个字符,
验证现在是否拥有带有指纹的密钥,输入以下命令:
sudo apt-key fingerprint 0EBFCD88
(5)使用以下指令设置稳定版仓库。
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"
1.2.2 安装 Docker Engine-Community
(1)更新 apt 包索引,输入以下命令:
sudo apt-get update
(2)安装最新版本的 Docker Engine-Community 和 containerd,输入以下命令:
sudo apt-get install docker-ce docker-ce-cli containerd.io
(3)测试 Docker 是否安装成功,输入以下指令,打印出以下信息则安装成功
sudo docker run hello-world
1.2.3 使用中科大镜像加速器
(1)添加镜像源:
sudo vim /etc/docker/daemon.json
输入以下内容:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
(2)重启 docker 服务:
sudo systemctl restart docker
1.2.4 把 Docker 配置为普通用户访问
(1)添加 docker 用户组,输入以下命令:
sudo groupadd docker
(2)将登陆用户加入到 docker 用户组中:
sudo usermod -aG docker $USER
(3)更新用户组(这一步非常重要):
newgrp docker
(4)重启 docker 服务:
sudo systemctl enable docker
sudo systemctl restart docker
(5)直接普通用户运行 hello-world,输入以下命令:
docker run hello-world