
一.问题描述
执行docker pull命令时经常不能pull images,显示如下错误
Could not reach any registry endpoint.
Google后才知道Raspbian中默认安装的docker版本是1.3.3,而docker更新后一些性能不在支持1.5及以下的版本,所以才会出现这样的问题。为了能够正常使用,要更新到较新的版本。
二.安装配置
1.先卸载旧版本的docker
1
| $ sudo apt-get remove --purge docker docker-io
|
2.使用官方脚本安装docker
1
| $ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
|
3.为了使用户能够使用docker,把它加入用户组
1
| $ sudo usermod -aG docker pi
|
这样在执行docker命令的时候就不需要加上sudo.
根据系统提示,重新启动系统或者重新登录,便可以正常的使用docker.
4.配置镜像加速器
1
2
3
4
5
6
7
8
| $ vim /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn/",
"https://dockerhub.azk8s.cn"
],
"insecure-registries": []
}
|
5.限制容器日志的大小
1
2
3
4
5
6
7
8
9
10
11
| ~$ vim /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size":"1m",
"max-file":"2"
}
}
# 重启Docker
~$ sudo systemctl restart docker
|
若不做配置,容器产生的日志会不断增大,可能到几GB,上面配置每个容器最多产生5MB的日志,最多保留2个日志文件。
容器日志清理脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #!/bin/sh
# Clean Docker log.
echo "======== start clean docker containers logs ========"
logs=$(find /var/lib/docker/containers/ -name *-json.log)
for log in $logs
do
echo "clean logs : $log"
cat /dev/null > $log
done
echo "======== end clean docker containers logs ========"
|
执行此脚本,可清理容器产生的日志。
6.有时出了问题,可以卸载重新安装
1
| $ sudo apt-get remove --auto-remove docker-engine
|
三.docker教程参考
Docker —— 从入门到实践
参考:
1.
https://www.raspberrypi.org/blog/docker-comes-to-raspberry-pi/
2.
Could not reach any registry endpoint