来源:公众号【鱼鹰谈单片机】,ID :emOsprey
本方法适合树莓派5,ubuntu,其他未测试过,方法是类似的,并添加目前可用镜像源。
安装 docker 软件
# 如果以前安装了 docker, 需要卸载
sudo apt remove docker docker-engine docker.io containerd runc
# 安装依赖
sudo apt -y install ca-certificates curl gnupg lsb-release
# 添加秘钥,返回 OK
sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]')/gpg | sudo apt-key add
# 添加国内源
# 根据 uname -m 结果,aarch64 (即树莓派5)修改为 [arch=arm64]
# 根据 uname -m 结果,x86_64,修改为 [arch=amd64]
sudo echo "deb [arch=arm64] http://mirrors.aliyun.com/docker-ce/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable" >> /etc/apt/sources.list
# 或者使用自动化命令
sudo bash -c "echo "deb [arch=$(uname -m | awk '{if ($0 == "x86_64") print "amd64"; else if ($0 == "aarch64") print "arm64"; else print $0}')] http://mirrors.aliyun.com/docker-ce/linux/$(lsb_release -is | tr '[:upper:]' '[:lower:]') $(lsb_release -cs) stable" >> /etc/apt/sources.list"
# 或者 x64 ubuntu 下使用命令,注意,该命令在树莓派系统下会执行失败
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# 更新软件列表,如果报错,查看是否是新加入的源报的错,如果不是,不用管
sudo apt update
# 安装软件
sudo apt -y install docker-ce docker-ce-cli containerd.io
# 启动软件(安装完应该自动会执行,可不需要)
systemctl start docker
# 给当前用户添加权限,这样以后不需要使用 sudo 执行docker 命令
sudo usermod -aG docker $USER
# 退出系统重新登录,或者切换当前用户
su $USER
镜像源更换
# 由于镜像源被墙,需要修改镜像源,这些源可以也会失效,需要从网上搜索可用源
sudo vim /etc/docker/daemon.json
#############################
{
"registry-mirrors": [
"https://dockerhub.icu",
"https://hub.uuuadc.top",
"https://docker.anyhub.us.kg",
"https://dockerhub.jobcher.com",
"https://docker.ckyl.me",
"https://docker.awsl9527.cn"
]
}
# 或者使用命令行直接修改(全部复制,这个源目前有效)
sudo tee /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://dockerhub.icu"]
}
EOF
# 确认源是否修改成功
cat /etc/docker/daemon.json
# 一定要重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
获取镜像
# 查看当前镜像,确定是否可以不使用 sudo 执行 docker 命令
docker images
# 下拉镜像
docker pull ubuntu:18.04
# 进入容器
docker run -it ubuntu:18.04
查看当前镜像,只有 57M 大小
树莓派成功进入容器(@后面的是容器 ID):
查看容器系统版本
查看架构为 aarch64:
容器内更新软件列表(有可能需要更新软件源,速度更快)
容器内安装软件 vim gcc 等
查看gcc 版本
查看所有存在的容器
查看资源占用 docker stats:
可以编译代码了,赶紧用起来吧
阅读全文