Что такое ошибка "unauthorized"?

Ошибка Docker: Error response from daemon: unauthorized возникает, когда Docker не может аутентифицироваться в registry или у пользователя недостаточно прав для выполнения операции.

Причины возникновения

  • Неверные credentials для Docker registry
  • Отсутствие прав доступа к registry
  • Проблемы с Docker login
  • Истекший токен аутентификации
  • Неправильная конфигурация Docker daemon

Как отладить ошибку

  1. Проверь статус аутентификации - docker login
  2. Проверь конфигурацию Docker - docker info
  3. Проверь права пользователя - groups $USER
  4. Проверь логи Docker - journalctl -u docker

Как исправить ошибку

1. Выполни аутентификацию в registry

1# Войди в Docker Hub
2docker login
3
4# Войди в приватный registry
5docker login registry.example.com
6
7# Проверь статус аутентификации
8docker info

2. Добавь пользователя в группу docker

1# Добавь пользователя в группу docker
2sudo usermod -aG docker $USER
3
4# Перезагрузи группу (или перелогинься)
5newgrp docker
6
7# Проверь группы пользователя
8groups $USER

3. Настрой права доступа к Docker socket

1# Измени права на Docker socket
2sudo chmod 666 /var/run/docker.sock
3
4# Или добавь пользователя в группу docker
5sudo chown root:docker /var/run/docker.sock

4. Настрой Docker daemon для приватного registry

1// /etc/docker/daemon.json
2{
3  "insecure-registries": ["registry.example.com:5000"],
4  "registry-mirrors": ["https://mirror.example.com"]
5}

5. Используй Docker credentials helper

1# Установи docker-credential-helper
2sudo apt-get install docker-credential-helper
3
4# Настрой в ~/.docker/config.json
5{
6  "credsStore": "pass"
7}

Как мониторить подобные ошибки

  • Мониторь статус аутентификации в registry
  • Настрой алерты на ошибки аутентификации
  • Логируй все попытки доступа к registry
  • Проверяй срок действия токенов

FAQ

В: Что делать, если не могу войти в приватный registry?

О: Проверь credentials, убедись в доступности registry и правильности URL.

В: Как настроить автоматическую аутентификацию?

О: Используй Docker credentials helper или настрой CI/CD для автоматического login.

В: Что делать, если токен истек?

О: Выполни повторный docker login для обновления токена.

Лучшие практики

  • Используй Docker credentials helper
  • Регулярно обновляй токены аутентификации
  • Настрой правильные права доступа
  • Используй приватные registry для production
  • Мониторь доступность registry