Rocky & Sky IT技术和管理

和大家分享一些技术,聊一聊有趣的话题

Docker在树莓派的安装与使用(Ubuntu Arm Server v19.10)

最近由于冠状病毒疫情的原因,只能够和小朋友家里蹲。这几天把尘封已久的那个树莓派拿出来继续捣鼓。希望能够做一个异构的分布式系统框架,于是想把Docker也安装到树莓派上,以便后期做进一步的开发和实验。

我用的树莓派版本是Raspberry PI 3B,版本比较老,不过做做实验还是绰绰有余了.

《Docker在树莓派的安装与使用(Ubuntu Arm Server v19.10)》

由于树莓派是ARM核心的CPU,具体来说就是Arm Cortex A53架构64位处理器。所以在安装Docker的时候会遇到问题,尤其是最新的Ubuntu系统,还没有加入到Docker的支持列表里。如果安装官方指南的安装步骤。当我们运行:

sudo apt-get install docker-ce docker-ce-cli containerd.io

会有下面的错误提示信息:

Err:4 https://download.docker.com/linux/ubuntu eoan Release
404  Not Found [IP: 143.204.214.20 443]
E: The repository 'https://download.docker.com/linux/ubuntu eoan Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.

这其实时提示docker库里没有docker-ce的安装程序。下面是docker支持的操作系统列表,https://docs.docker.com/install/linux/docker-ce/ubuntu/

Ubuntu19.10还不在支持范围内。但这样也阻挡不了安装Docker的决心。于是换成用18.x版本的Ubuntu库,执行以下的命令:

deb [arch=amd64] https://download.docker.com/linux/ubuntu disco stable

再次运行安装命令,发现能够顺利安装了。

 sudo docker run hello-world

接着运行hello-world成功!!

《Docker在树莓派的安装与使用(Ubuntu Arm Server v19.10)》

后面可以测试pull一个docker镜像,也是成功的,不过有一点要注意的。我开始是直接pull了一个Linux版本的image,结果运行不了。

standard_init_linux.go:211: exec user process caused "exec format error"

这是由于这个镜像不是在ARM核心的环境上构建的的,必须要下载ARM构建的镜像才能够运行,或者下载dockerfile文件自己构建容器镜像。

其他注意事项

国内直接连接Dokcer Hub的速度比较慢,下面是可用的Docker Hub镜像网站列表

https://gist.github.com/theCnImageList

由于安全性的设置,如果当前登录用户不是root,那么要登录Docker Hub,我们需要建立docker group,并把当前用户加入到这个组。

sudo groupadd docker     #添加docker用户组,可能已经存在,已存在就可以直接进行下一步
sudo gpasswd -a $USER docker     #将当前登录用户加入到docker用户组中
# 重启 docker 服务
$ sudo service docker restart
# 或者shell
$ sudo /etc/init.d/docker restart
newgrp docker     #更新用户组

后记

到此为之,在树莓派上安装Docker就完成了。后面就要开始配置Docker集群部署和编排工具K8S来进行基于Docker的分布式服务的实验了。

安装后的问题 其实我为了安装docker,把docker库降级了,后面如果Docker官方正式支持Ubuntu最新版本的话。就可以把这个库恢复到eoan (Ubuntu 9.x的代号)

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注