【分布式】在树莓派上部署Docker - 亲测可用 - 排坑指南;解决自动化脚本不能安装的问题;适用于普通的Linux
一、卸载旧版本sudo apt-get remove docker docker-engine docker.io containerd runcsudo apt-get purge docker-ce docker-ce-cli containerd.iosudo rm -rf /var/lib/dockersudo rm -rf /var/lib/containerdhint:apt-get报
一、卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
hint:
apt-get报告这些包都没安装,这没有关系/var/lib/docker/包括图像、容器、卷和网络,都被保留。Docker 引擎包现在称为docker-ce。
二、安装方法
您可以根据需要以不同的方式安装 Docker Engine:
-
大多数用户 设置 Docker 的存储库并从中安装,以便于安装和升级任务。这是推荐的方法,除了 Raspbian。
-
一些用户下载 DEB 包并 手动安装,完全手动管理升级。这在诸如在无法访问 Internet 的气隙系统上安装 Docker 等情况下很有用。
-
在测试和开发环境中,一些用户选择使用自动化 便利脚本来安装 Docker。这是目前 Raspbian 的唯一方法。
这里因为使用自动化脚本安装总会出现这样的问题:
Executing docker install script, commit: 93d2499759296ac1f9c510605fef85052a2c32be
- sh -c apt-get update -qq >/dev/null
- sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-> > transport-https ca-certificates curl >/dev/null
- sh -c curl -fsSL “https://download.docker.com/linux/raspbian/gpg” | gpg -> -dearmor --yes -o /usr/share/keyrings/docker-archive-keyring.gpg
- sh -c echo “deb [arch=armhf signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/raspbian buster stable” > /etc/apt/sources.list.d/docker.list
- sh -c apt-get update -qq >/dev/null
- sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq --no-install-recommends docker-ce-cli docker-ce >/dev/null
E: Sub-process /usr/bin/dpkg returned an error code (1)

因此我们使用存储库安装安装
三、使用存储库安装
1. 设置存储库
- 更新apt包索引并安装包以允许apt通过 HTTPS 使用存储库:
sudo apt-get upgrade
sudo apt-get update
sudo apt-get install \
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
- 使用以下命令设置稳定存储库。要添加 nightly或test存储库,请在以下命令中的单词之后添加单词nightly或test(或两者) 。
2. 安装Docker 引擎
- 更新apt包索引,安装最新版本的Docker Engine和containerd,或者进入下一步安装特定版本:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
也可以安装 特定版本:
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
排坑: 此时会出现以下问题:
Job for docker.service failed because the control process exited with error code.
See “systemctl status docker.service” and “journalctl -xe” for details.
invoke-rc.d: initscript docker, action “start” failed.
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Mon 2022-04-25 13:52:26 CST; 30ms ago
Docs: https://docs.docker.com
Process: 12130 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
Main PID: 12130 (code=exited, status=1/FAILURE)
dpkg: error processing package docker-ce (–configure):
installed docker-ce package post-installation script subprocess returned error exit status 1
Processing triggers for man-db (2.8.5-2) …
Processing triggers for systemd (241-7~deb10u8+rpi1) …
Errors were encountered while processing:
docker-ce
E: Sub-process /usr/bin/dpkg returned an error code (1)

解决办法在下一节:
3. 解决docker-ce安装时出现的错误
- 输入以下命令:
cd /var/lib/dpkg
sudo mv info info.bak
sudo mkdir info
- 再次安装即可:
sudo apt-get install docker-ce docker-ce-cli containerd.io
- 成功:

- 但是此时启动docker服务,会出现以下问题:
sudo systemctl start docker
问题:
Job for docker.service failed because the control process exited with error code.
4. 解决docker服务存在的问题
- 以上的问题可以修复解决:
sudo dockerd --debug
- 然后重启:
sudo reboot
此时再启动docker服务并hello world一下:
sudo systemctl start docker
sudo docker run hello-world
- 至此,docker的部署就成功了:

更多推荐




所有评论(0)