Cannot connect to the Docker daemon: как запустить Docker
Команда docker не нашла работающую службу Docker. На сервере её нужно запустить, на своём компьютере — открыть Docker Desktop. Ниже — как проверить и что делать, если служба не стартует.
Содержание 10
Как выглядит ошибка
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?В Docker 29, если файла сокета нет вовсе, сообщение другое, но смысл тот же:
failed to connect to the docker API at unix:///var/run/docker.sock; check if the path is correct and if the daemon is running: dial unix /var/run/docker.sock: connect: no such file or directoryОбе ошибки значат, что служба Docker не работает. Если в сообщении есть слова permission denied — это другая ошибка: нет прав на сокет.
Шаг 1. Посмотрите, работает ли служба
Команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.
sudo systemctl status dockerЕсли система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — так и должно быть: наберите пароль и нажмите Enter.
Active: active (running)— служба работает. Переходите к разделу «Служба работает, а ошибка есть».inactive (dead)— служба остановлена. Переходите к шагу 2.failed— служба запускалась, но упала. Переходите к шагу 3.Unit docker.service could not be found.— на сервере нет самой службы Docker, стоит только команда docker. Установите Docker — раздел «Если Docker не установлен».
Чтобы вернуться к вводу команд после systemctl status, нажмите клавишу Q.
Шаг 2. Запустите Docker
sudo systemctl start dockerЕсли команда ничего не ответила, служба запущена. Проверьте:
docker versionВ ответе должен появиться раздел Server. Чтобы Docker сам запускался после перезагрузки сервера, включите автозапуск:
sudo systemctl enable dockerШаг 3. Если служба не запускается — смотрите журнал
sudo journalctl -u docker -n 50 --no-pagerИщите строки со словами error или failed ближе к концу. Если там есть слова unable to configure the Docker daemon with file /etc/docker/daemon.json, служба не смогла прочитать свой файл настроек. Это случается после его правки — например, когда настраивали логи. Откройте файл (как работать в редакторе — в разделе про nano):
sudo nano /etc/docker/daemon.jsonФайл записан в формате JSON. Проверьте: всё содержимое в фигурных скобках, названия и текстовые значения в двойных кавычках, между настройками — запятая, а после последней настройки запятой нет. Пример правильного файла:
{
"log-driver": "local"
}Сохраните файл — Ctrl+O, Enter, затем Ctrl+X — и запустите Docker снова: sudo systemctl start docker.
Служба работает, а ошибка есть
Команда docker могла быть направлена на другой адрес. Проверьте переменную DOCKER_HOST:
echo $DOCKER_HOSTЕсли команда вывела адрес, а вы его не задавали, уберите переменную в текущем окне:
unset DOCKER_HOSTЕсли после переподключения адрес вернулся, найдите строку с DOCKER_HOST в файле ~/.bashrc и удалите её:
nano ~/.bashrcЕщё проверьте контекст Docker:
docker context lsЗвёздочкой отмечен текущий. Для Docker на этом же сервере нужен контекст default:
docker context use defaultЕсли Docker не установлен
Проще всего поставить Docker из пакетов Ubuntu — вместе с Compose:
sudo apt update
sudo apt install docker.io docker-compose-v2Сам Docker советует ставить его из своего репозитория — по официальной инструкции для Ubuntu. Выберите один способ: пакеты из разных источников конфликтуют. Подробнее о выборе — в статье VPS для разработчика: Docker на сервере.
На своём компьютере: Docker Desktop
На Mac и Windows службу Docker запускает приложение Docker Desktop. Откройте его: на Mac — из папки «Программы», на Windows — из меню «Пуск». Дождитесь, пока Docker Desktop запустится, и повторите команду. Пока приложение закрыто, команды docker в терминале выдают эту ошибку.
Если сайт на обычном хостинге
На обычном хостинге Docker нет: для него нужен свой сервер — VPS — с доступом root.
Тексты ошибок сверены с исходным кодом Docker 29.1.3 — эта версия ставится из пакетов Ubuntu 24.04. В Docker 28 и более старых версиях часть сообщений звучит иначе.
Источники
- Исходный код Docker 29.1.3: errors.go — текст Cannot connect to the Docker daemon.
- Исходный код Docker 29.1.3: request.go — тексты ошибок подключения к Docker в версии 29.
- Пакет Docker в Ubuntu 24.04: docker.io.docker.service — служба docker и её перезапуск после сбоя.
- Пакет Docker в Ubuntu 24.04: docker.io.docker.socket — сокет /run/docker.sock доступен root и группе docker.
- Исходный код Docker 29.1.3: daemon.go — текст unable to configure the Docker daemon with file.
- Документация Docker: драйверы логов — настройка логов в daemon.json.
- Документация Docker: установка в Ubuntu — установка Docker из репозитория Docker.
- Пакет docker.io в Ubuntu 24.04 — версия Docker в Ubuntu.
- Пакет docker-compose-v2 в Ubuntu 24.04 — Compose для команды docker compose.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026