Raspbian 安装最新版 docker

docker

一.问题描述

执行docker pull命令时经常不能pull images,显示如下错误

Could not reach any registry endpoint.

Google后才知道Raspbian中默认安装的docker版本是1.3.3,而docker更新后一些性能不在支持1.5及以下的版本,所以才会出现这样的问题。为了能够正常使用,要更新到较新的版本。

二.安装配置

1.先卸载旧版本的docker

$ sudo apt-get remove --purge docker docker-io

2.使用官方脚本安装docker

$ curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

3.为了使用户能够使用docker,把它加入用户组

$ sudo usermod -aG docker pi

这样在执行docker命令的时候就不需要加上sudo. 根据系统提示,重新启动系统或者重新登录,便可以正常的使用docker.

4.配置镜像加速器

$ vim /etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://docker.mirrors.ustc.edu.cn/",
        "https://dockerhub.azk8s.cn"
     ],
     "insecure-registries": []
}

5.限制容器日志的大小

~$ 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个日志文件。

容器日志清理脚本

#!/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.有时出了问题,可以卸载重新安装

$ 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