Не могу установить докер на Ubuntu 17.10

У меня есть: Ubuntu 17.10 - ядро ​​4.13.0-19-generic

Нет докера на машине

Установка docker выполняется по https://github.com/docker/docker-install, т.е.

curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh

я получил

$ docker -v
Docker version 17.11.0-ce, build 1caf76c

Хорошо, когда я запускаю $ sudo в доке, я получаю

ERRO[2017-12-15T17:33:21.314578657+01:00] 'overlay' не найден в качестве поддерживаемой файловой системы на этом хосте. Убедитесь, что ядро ​​достаточно новое и загружена поддержка оверлеев.

ERRO [2017-12-15T17: 33: 21.316522224 + 01: 00] 'overlay' не найден в качестве поддерживаемой файловой системы на этом хосте. Убедитесь, что ядро ​​достаточно новое и загружена поддержка оверлеев. Ошибка запуска демона: ошибка инициализации graphdriver: devicemapper:

Ошибка запуска deviceCreate (CreatePool) dm_task_run завершилась ошибкой

Я пытаюсь снова, и получаю это время

ERRO[2017-12-15T17:35:24.814595903+01:00] [graphdriver] предыдущий драйвер устройства хранения не сработал: устройство отображения: ошибка при запуске deviceCreate (CreatePool) dm_task_run завершилась неудачно

Ошибка запуска демона: ошибка инициализации graphdriver: devicemapper: Ошибка при запуске deviceCreate (CreatePool) dm_task_run не удалось

В чем дело?

1 ответ

Решение

Я установил новую виртуальную машину с Ubuntu 17.10 в Virtualbox и обновил пакеты с помощью apt.

Текущая версия ядра:

$ uname -a
Linux test-VirtualBox 4.13.0-19-generic #22-Ubuntu SMP Mon Dec 4 11:58:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Я устанавливаю Docker, используя предложенный вами скрипт:

apt-get install curl -y
curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh

Я добавляю свою учетную запись в группу Docker:

sudo usermod -aG docker test

Я выхожу и снова вхожу в систему, поэтому членство в моей группе обновляется

Я проверяю версию CLI докера:

docker version
Client:
 Version:      17.11.0-ce
 API version:  1.34
 Go version:   go1.8.5
 Git commit:   1caf76c
 Built:        Mon Nov 20 18:36:39 2017
 OS/Arch:      linux/amd64

Server:
 Version:      17.11.0-ce
 API version:  1.34 (minimum version 1.12)
 Go version:   go1.8.5
 Git commit:   1caf76c
 Built:        Mon Nov 20 18:35:09 2017
 OS/Arch:      linux/amd64
 Experimental: false

Установлен Docker 17.11 CE (edge).

Я запускаю демон docker и включаю его:

$ sudo systemctl status docker
$ sudo systemctl enable docker

Я проверяю, что демон Docker работает хорошо

$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2017-12-18 20:37:32 CET; 4min 35s ago
     Docs: https://docs.docker.com
 Main PID: 2028 (dockerd)
    Tasks: 18 (limit: 4915)
   Memory: 35.7M
      CPU: 2.641s
   CGroup: /system.slice/docker.service
           ├─2028 /usr/bin/dockerd -H fd://
           └─2033 docker-containerd --config /var/run/docker/containerd/containerd.toml

dic 18 20:37:29 test-VirtualBox dockerd[2028]: time="2017-12-18T20:37:29.670548640+01:00" level=warning msg="Your kernel does not support swap memory limit"
dic 18 20:37:29 test-VirtualBox dockerd[2028]: time="2017-12-18T20:37:29.674459227+01:00" level=warning msg="Your kernel does not support cgroup rt period"
dic 18 20:37:29 test-VirtualBox dockerd[2028]: time="2017-12-18T20:37:29.674701645+01:00" level=warning msg="Your kernel does not support cgroup rt runtime"
dic 18 20:37:29 test-VirtualBox dockerd[2028]: time="2017-12-18T20:37:29.680586963+01:00" level=info msg="Loading containers: start."
dic 18 20:37:30 test-VirtualBox dockerd[2028]: time="2017-12-18T20:37:30.678377763+01:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0
dic 18 20:37:31 test-VirtualBox dockerd[2028]: time="2017-12-18T20:37:31.543493214+01:00" level=info msg="Loading containers: done."
dic 18 20:37:31 test-VirtualBox dockerd[2028]: time="2017-12-18T20:37:31.869113420+01:00" level=info msg="Docker daemon" commit=1caf76c graphdriver(s)=overlay2 version=17
dic 18 20:37:31 test-VirtualBox dockerd[2028]: time="2017-12-18T20:37:31.873009943+01:00" level=info msg="Daemon has completed initialization"
dic 18 20:37:32 test-VirtualBox systemd[1]: Started Docker Application Container Engine.
dic 18 20:37:32 test-VirtualBox dockerd[2028]: time="2017-12-18T20:37:32.192666262+01:00" level=info msg="API listen on /var/run/docker.sock"

Docker-демон использует overlay2 в качестве драйвера хранилища.

$ docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 17.11.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs

Модуль оверлея загружен:

lsmod | grep overlay
overlay                69632  0

Я перезагрузил сервер и проверил, что Docker запущен нормально, и я могу запустить контейнер hello-world:

$ docker run hello-world
...
Hello from Docker!

Все выглядит хорошо! Поэтому я предлагаю вам запустить ваш демон docker, используя systemctl, вместо того, чтобы запускать его с помощью dockerd из оболочки.

Другие вопросы по тегам