最后编辑于: 2019-08-13 15:54 | 分类: linux | 标签: 树莓派 docker | 浏览数: 3943 | 评论数: 0
设备: raspberry pi 3B E14
环境: Raspbian GNU/Linux 9 Stretch
都说用shell脚本安装, 简单省事, 我一开始也尝试用脚本安装,
官方的脚本:
curl -fLsS https://get.docker.com/ | sh
和 国内DaoCloud源的脚本:
curl -sSL https://get.daocloud.io/docker | sh
都试过了, 全都没戏, 国内源的要好些, 进度还多跑了一些, 但最终都因为下载速度过慢而出错退出. 试了3遍都如此, 耽误不少时间.
参考文章:
https://yymelo.com/%E6%A0%91%E8%8E%93%E6%B4%BEraspberry-pi-3b%E5%AE%89%E8%A3%85docker/
后来只能改用APT方式安装.
首先需要更新一下软件包的索引
sudo apt-get update
然后 安装HTTPS传输所依赖的软件包 以及 CA证书, 命令如下:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
lsb-release \
software-properties-common
换用国内源, 并添加国内软件源的GPG密钥:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian/gpg | sudo apt-key add -
然后,向 /etc/apt/source.list 中添加Docker CE(CE代表社区版)软件源:
$ echo "deb [arch=armhf] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/raspbian/ $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list
上面的命令也是从网上抄来的, 注意其实际上是将软件源添加到了/etc/apt/sources.list.d/docker.list, 实验证明, 添加到/etc/apt/source.list或/etc/apt/sources.list.d/docker.list都可以.
另, lsb_release -cs命令的作用是打印当前Raspbian系统的版本名称, 我当前的环境打印结果是Stretch
最后, 更新apt缓存,安装Docker CE:
sudo apt-get update
sudo apt-get install docker-ce
安装过程中, 可能出现如下错误:
Error! The dkms.conf for this module includes a BUILD_EXCLUSIVE directive which does not match this kernel/arch. This indicates that it should not be built.
解决办法, 通过下面命令, 安装kernel headers:
sudo aptitude install raspberrypi-kernel-headers
之后, 再次sudo apt-get install docker-ce
即可!
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。所以,最好将需要使用 docker 的用户加入 docker 用户组。
首先,建立 docker 组:
sudo groupadd docker
将当前用户pi加入 docker 组:
sudo usermod -aG docker pi
之后系统重启, 使之生效.
docker run arm32v7/hello-world
若出现
Hello from Docker!
This message shows that your installation appears to be working correctly.
说明安装成功!
参考文章:
https://yeasy.gitbooks.io/docker_practice/install/mirror.html
对于使用systemd的系统,请在/etc/docker/daemon.json
中(如果文件不存在请新建该文件)写入json格式的配置内容, 可用如下命令添加:
sudo bash -c 'cat > /etc/docker/daemon.json << "EOF"
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF'
命令执行后, /etc/docker/daemon.json
文件中内容如下:
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
上面内容添加了清华的加速器. 也可直接用vim等编辑软件编辑添加.
注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。
后来, 我又用vim手动编辑此文件, 另外添加了一个源(docker官方的中国区加速器), 文件内容变更如下:
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
/etc/docker/daemon.json
文件内容修改好后, 重启docker服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
执行docker info, 如果从结果中看到了如下内容,说明配置成功。
Registry Mirrors:
https://docker.mirrors.ustc.edu.cn/
https://registry.docker-cn.com/