前言
在本博客中,实践如何在 Rockchip 3568 设备上通过 Ubuntu 22.04 系统安装和运行 Docker。我会比较 Docker CE 和 Docker.io 两种版本的安装过程、兼容性以及在特定硬件上的表现,为兄弟们提供一个清晰的安装指南和实用的运行笔记。
参考
Linux(31)Rockchip RK3568 Ubuntu22.04上部署 Docker: 问题与解决方案
ubuntu 22.04 iptables 运行失败解决方法
方式1:安装 Docker CE on Ubuntu 22.04
# 当时安装完的最后情况 root@btf:/# docker --version Docker version 26.0.0, build 2ae903e root@btf:/# docker run hello-world docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?. See 'docker run --help'.
1. 准备工作
- 默认的系统镜像源可以是阿里云,也可以选择其他源,如清华源或中科大源。Ubuntu 的系统源文件位于
/etc/apt/sources.list
。在修改此文件以添加镜像源之前,最好备份下原文件。
sudo sed -i 's/huaweicloud.com/ustc.edu.cn/g' /etc/apt/sources.list # 换了以下的不行,最终用的是中科大的源 sudo sed -i 's/mirrors.aliyun.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list sudo sed -i 's/mirrors.aliyun.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list sudo sed -i 's/mirrors.tuna.tsinghua.edu.cn/mirrors.huaweicloud.com/g' /etc/apt/sources.list sudo sed -i 's/mirrors.huaweicloud.com/mirrors.cloud.tencent.com/g' /etc/apt/sources.list
2. 更新 APT 索引
- 执行以下命令以更新 APT 包索引:
sudo apt-get update
3. 卸载旧版本的 Docker
- 如果之前安装过 Docker,必须卸载可能存在的旧版本。执行以下命令:
sudo apt remove docker docker-engine docker-ce docker.io
4. 安装 HTTPS 支持包
- 安装几个必要的包,使得
apt
能够通过 HTTPS 来使用仓库(repository):
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
5. 添加 Docker 官方 GPG 密钥
- 选择使用阿里云的 Docker 源,需要添加阿里云提供的 GPG 密钥。执行以下命令:
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
6. 向源列表添加 Docker 仓库
- 在系统源中添加 Docker 仓库。确保替换
[arch=aarch64]
与当前系统架构相匹配,则该命令如下:
sudo add-apt-repository "deb [arch=$(arch)] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
7. 再次更新 APT 索引
- 添加了新的仓库后,再次更新 APT 包索引可以看到有刚增加的阿里云索引:
sudo apt-get update
8. 安装 Docker CE
- 执行命令安装最新版本的 Docker CE:
sudo apt install docker-ce
9. 验证安装
- 安装完成后,可以运行以下命令来验证 Docker 是否成功安装并正在运行:
root@btf:/# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2024-03-22 11:40:31 CST; 1min 10s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Process: 703 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE) Main PID: 703 (code=exited, status=1/FAILURE) Mar 22 11:40:29 btf systemd[1]: docker.service: Main process exited, code=…ILURE Mar 22 11:40:29 btf systemd[1]: docker.service: Failed with result 'exit-code'. Mar 22 11:40:29 btf systemd[1]: Failed to start Docker Application Contain…gine. Mar 22 11:40:31 btf systemd[1]: docker.service: Scheduled restart job, res…at 3. Mar 22 11:40:31 btf systemd[1]: Stopped Docker Application Container Engine. Mar 22 11:40:31 btf systemd[1]: docker.service: Start request repeated too…ckly. Mar 22 11:40:31 btf systemd[1]: docker.service: Failed with result 'exit-code'. Mar 22 11:40:31 btf systemd[1]: Failed to start Docker Application Contain…gine. Hint: Some lines were ellipsized, use -l to show in full.
或者运行一个测试容器:
sudo docker run hello-world
通过以上步骤,能够在 Ubuntu 22.04 上成功安装 Docker CE (但是run不了测试容器,没解决后面再研究)。
方式2:安装 Docker.io on Ubuntu 22.04(推)
# 我的设备环境: root@btf:/$ docker --version Docker version 24.0.5, build 24.0.5-0ubuntu1~22.04.1 root@btf:/$ uname -a Linux btf 4.19.219 #7 SMP Fri Mar 22 10:46:23 CST 2024 aarch64 aarch64 aarch64 GNU/Linux root@btf:/$ cat /etc/issue Ubuntu 22.04 LTS \n \l
1. 更新软件包列表
确保系统软件包列表是最新的。避免安装过程中的依赖问题。
sudo apt-get update
2. 移除其他版本的 Docker
如果之前安装过 Docker 的其他版本(如 docker-ce
),必须先将其卸载,不然很多莫名其妙问题。
sudo apt-get remove docker docker-engine docker.io containerd runc
3. 安装 Docker.io
直接从 Ubuntu 的官方仓库中安装 docker.io
。这个版本经过了 Ubuntu 社区的测试,与 Ubuntu 系统的兼容性较好。
sudo apt-get install docker.io
4. 启动 Docker 并设置开机自启
安装完成后,启动 Docker 服务,并设置为开机自启。
sudo systemctl start docker sudo systemctl enable docker
5. 验证安装
检查 Docker 是否正确安装并运行。
sudo docker run hello-world
解决依赖问题
如果在安装过程中遇到依赖问题,尤其是与 containerd
或 containerd.io
相关的冲突,尝试以下步骤来解决:
尝试修复损坏的包
sudo apt-get -f install
移除现有的 containerd
或 containerd.io
如果系统上已经安装了 containerd
或 containerd.io
,需要移除它们。
sudo apt-get remove containerd.io containerd
然后,再次尝试安装 docker.io
。
使用 Docker 官方安装脚本
如果直接安装 docker.io
还有问题,可以使用 Docker 提供的官方安装脚本。这将安装 Docker 的最新版本,而不是 Ubuntu 仓库中的版本。
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试(下)+https://developer.aliyun.com/article/1489673