Як перевірити та виправити шлях до сокета Docker на Debian 12?

Як перевірити та виправити шлях до сокета Docker, а також куди додати налаштування, щоб воно застосовувалося автоматично.

Стандартний шлях до сокета Docker

Коли Docker Engine встановлений і працює, його сокет зазвичай розташований за адресою:

/var/run/docker.sock

Цей сокет дозволяє клієнту Docker (команді docker) взаємодіяти з Docker Daemon.

У вашій помилці вказується нестандартний шлях до сокета:

unix:///home/user/.docker/desktop/docker.sock

Цей шлях використовується Docker Desktop на деяких платформах, але якщо ви використовуєте Docker Engine на Debian, стандартним є /var/run/docker.sock. Тому потрібно вказати правильний шлях до сокета.

Як перевірити, чи доступний сокет /var/run/docker.sock

Виконайте команду:

ls -la /var/run/docker.sock

Ви повинні побачити щось на зразок:

srw-rw---- 1 root docker 0 Nov  7 14:22 /var/run/docker.sock

Якщо цього файлу немає, можливо, Docker Daemon не запущений. Запустіть його:

sudo systemctl start docker

Тимчасово вказати правильний шлях до сокета (перевірка)

Спробуйте змінити шлях до сокета на /var/run/docker.sock тимчасово, встановивши змінну DOCKER_HOST:

export DOCKER_HOST=unix:///var/run/docker.sock

Після цього спробуйте виконати команду Docker, наприклад:

docker info

Якщо це допомогло, значить, проблема дійсно в неправильному шляху до сокета.

Як додати змінну DOCKER_HOST для постійного використання

Щоб при кожному запуску терміналу Docker використовував правильний шлях до сокета, потрібно додати змінну DOCKER_HOST у ваш файл конфігурації оболонки.

  1. Відредагуйте файл конфігурації оболонки:
    Відкрийте файл ~/.bashrc (для оболонки Bash) або ~/.zshrc (для Zsh) будь-яким текстовим редактором, наприклад:

    nano ~/.bashrc
    
  2. Додайте рядок в кінці файлу:

    export DOCKER_HOST=unix:///var/run/docker.sock
    
  3. Збережіть файл і закрийте редактор.

  4. Оновіть налаштування оболонки командою:

    source ~/.bashrc
    

    або перезапустіть термінал, щоб зміни набрали чинності.

Тепер при кожному запуску терміналу буде використовуватися правильний шлях до сокета Docker.