因为树莓派是 ARM 架构的, 所以 Docker 的安装和使用也都有不同. 需要讲的内容比较多, 这里单挑出来.
树莓派是基于 ARM 架构的, 和 PC 不同. 所以即使树莓派上能做一些 docker 镜像, 也不能在别的 PC 上运行. 反过来别的 PC 上的 docker 镜像, 也不能在树莓派上运行.
如果需要找树莓派专用的镜像, 那就在 Dockerhub 上搜索 ARM 或 Rpi 相关就能找到了.
有一个叫 Hypriot https://hub.docker.com/u/hypriot/ 的仓库制作了非常多树莓派专用 docker, 可以参考下.
树莓派参考: Get Docker CE for Debian
参考: My home server powered by Pi and Docker https://jordancrawford.kiwi/rpi-home-server/
树莓派安装 Docker, 最难的在于正确的选择源和添加 GPG-key, 才能找到版本适合的 docker 并下载. 这个过程是非常繁琐且很难有统一方案的.
官方版一键安装脚本
注意: 官方的一键安装脚本很多人说不再支持了. 但是目前位置, 其实还是能支持的.
参考: The easy way to set up Docker on a Raspberry Pi
开始执行之前, 先说明: 我之前很多次都不成功, 找了很多相关解决方案都不行. 直到...
直到我先 sudo apt-get update 并且最最最重要的是 sudo apt-get upgrade, 之后才行.
其实在 upgrade 时候就能看到, 更新了很多系统依赖包, 这也就解决了之前 docker 安装不成功的一切毛病了.
upgrade 完成后, 就开始正式安装了:
需要用到一个 shell 脚本, get.docker.com, 整个网站就这一个脚本. 下载并执行:
$ curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
完成后, 会显示:
然后运行 hello world 试试:
$ sudo docker run hello-world
然后显示:
手动安装
准备工作:
- # 安装 SSL 相关, 让 apt 通过 HTTPS 下载:
- sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
- # 添加 docker 的 GPG key
- curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
- # 检查 key 是否相符 (9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88)
- sudo apt-key fingerprint 0EBFCD88
- # 添加 docker 的 apt 下载源
- sudo echo "\ndeb-src [arch=amd64] https://download.docker.com/linux/debian wheezy stable\n">> /etc/apt/sources.list
- # 更新源
- sudo apt-get update
安装 docker:
$ sudo apt-get install docker-ce
无需 sudo 执行 docker
为了每次执行 docker 不需要总是输入 sudo, 我们需要为 docker 创建一个用户组, 并授予权限才行:
- # 创建 docker 用户组
- sudo groupadd docker
- # 把当前用户加入到 docker 用户组
- sudo gpasswd -a $USER docker
- # 更新当前用户组变动 (就不用退出并重新登录了)
- newgrp docker
安装 docker-compose
可以通过把 docker compose 当作一个 docker 的 container 下载并运行:
- docker run \
- -v /var/run/docker.sock:/var/run/docker.sock \
- -v "$PWD:/rootfs/$PWD" \
- -w="/rootfs/$PWD" \
- docker/compose:1.13.0 up
- # 设置 alias 快捷键 (`~/.zshrc` 或 `~/.bash_profile`)
- alias docker-compose="'"'docker run \
- -v /var/run/docker.sock:/var/run/docker.sock \
- -v "$PWD:/rootfs/$PWD" \
- -w="/rootfs/$PWD" \
- docker/compose:1.13.0'"'"
常见错误问题
Python: No module name lsb_release
先检查本机是否已经安装了 lsb_release, 或者重新安装一遍:
$ sudo apt-get install lsb-release
如果还是这个问题, 那么就检查 Python 版本. 如果是 python3, 那么很可能是版本不够, 因为 lsb_release 需要最少 python3.5.
解决这个问题, 就把默认 python 设置回 python2 就好了. 就是个 ln 建立快捷方式都事:
- # 备份 (python 具体的位置根据自己情况定)
- $ sudo mv /usr/bin/python /usr/bin/python_bak
- # 更换
- $ sudo ln -s /usr/bin/python2.7 /usr/bin/python
然后再试一下 $ lsb_release -cs 看看有没有显示 jessie
无法添加源 add-apt-repository 报错找不到相关源
来源: https://segmentfault.com/a/1190000018028887