Как установить Docker на Linux CentOS и Ubuntu

Обновлено Обновлено: Опубликовано Опубликовано:

Используемые термины: DockerLinux.

Мы рассмотрим процесс установки Docker на системы семейства Linux — а именно, CentOS и Ubuntu.

CentOS 8

Устанавливаем wget:

dnf install wget

Скачиваем конфигурационный файл для репозитория докер:

wget -P /etc/yum.repos.d/ https://download.docker.com/linux/centos/docker-ce.repo

Теперь устанавливаем docker:

dnf install docker-ce docker-ce-cli

И разрешаем автозапуск сервиса и стартуем его:

systemctl enable docker –now

CentOS 7

Устанавливаем wget:

yum install wget

Скачиваем файл репозитория:

wget -P /etc/yum.repos.d/ https://download.docker.com/linux/centos/docker-ce.repo

Устанавливаем docker:

yum install docker-ce docker-ce-cli containerd.io

Запускаем его и разрешаем автозапуск:

systemctl enable docker –now

Ubuntu

Docker на Ubuntu ставится, относительно, просто.

Вводим команду:

apt-get install docker docker.io

Разрешаем автозапуск докера:

systemctl enable docker

Установка Compose

Команда docker-compose позволяет развернуть многоконтейнерные Docker-приложения.

Для ее установка сначала переходим на страницу github.com/docker/compose/releases/latest и смотрим последнюю версию docker-compose. В моем случае, это была 1.27.4.

После вводим:

curl -L “https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose

* где 1.27.4 — последняя версия файла.

Даем права файлу на исполнение:

chmod +x /usr/local/bin/docker-compose

Запускаем docker-compose с выводом его версии:

docker-compose –version

Возможные проблемы

1. undefined symbol: seccomp_api_set

Сервис докера не запускается, а в логе можно увидеть следующий текст ошибки:

/usr/bin/containerd: symbol lookup error: /usr/bin/containerd: undefined symbol: seccomp_api_set

Причина: ошибка возникает, если установить свежую версию containerd на систему с необновленной библиотекой libseccomp.

Решение: обновляем libseccomp.

а) в CentOS:

yum update libseccomp

б) в Ubuntu:

apt-get –only-upgrade install libseccomp2

2. error initializing network controller list bridge addresses failed no available network

Сервис докера не запускается, а в логе можно увидеть следующий текст ошибки:

error initializing network controller list bridge addresses failed no available network

Причина: система не может создать docker-интерфейс.

Решение: создаем docker-интерфейс вручную. Устанавливаем утилиту для работы с bridge-интерфейсами.

а) в CentOS:

yum install bridge-utils

б) в Ubuntu:

apt-get install bridge-utils

Создаем интерфейс:

brctl addbr docker0

Назначаем IP-адреса на созданный интерфейс:

ip addr add 192.168.84.1/24 dev docker0

* в нашем примере для docker мы задали адрес 192.168.84.1.

Включаем созданный интерфейс:

ip link set dev docker0 up

Можно запускать docker:

systemctl start docker