====== Ошибка: Docker: Ошибки команд (yaml, not found, in use...) ====== Это сборник "глупых" ошибок, которые возникали при работе с docker-compose и отнимали много времени. ==== `yaml: ... did not find expected key` ==== **Причина:** **Ошибка отступов** в файле docker-compose.yml. YAML очень чувствителен к пробелам. Даже один лишний или недостающий пробел ломает всю структуру. **Решение:** Внимательно проверять отступы. Каждый новый уровень должен иметь **на два пробела больше**, чем предыдущий. ==== `additional properties '...' not allowed` ==== **Причина:** В docker-compose.yml попал **посторонний текст** (например, кусок предыдущей инструкции или команды). **Решение:** Открыть файл и удалить весь "мусор", оставив только код YAML. ==== `no such file or directory` (при работе с файлами) ==== **Причина 1:** **Опечатка в пути.** Например, docker--stack вместо docker-stack. **Причина 2:** **Я работаю не на той ВМ!** (Например, пытаюсь найти конфиг Apache на Docker-ВМ). **Решение:** Всегда проверять, на какой машине я нахожусь (whoami) и в какой папке (pwd). ==== `Resource is still in use` (при docker compose down) ==== **Причина:** Какой-то "контейнер-призрак" (обычно от неудачного эксперимента, как ''BookStack'') не удалился и "держит" сеть. **Решение:** 1. Найти "призраков": docker ps -a. 2. Принудительно удалить их: docker rm [имя_контейнера]. 3. Либо использовать команду очистки: docker compose up -d --remove-orphans. ==== `File ... is being edited by root (with nano ...)` ==== **Причина:** "Зависла" предыдущая сессия sudo nano. **Решение:** Найти и "убить" зависший процесс по его ID (ps aux | grep nano, затем sudo kill [PID]) или удалить "файл-призрак" блокировки (.имя_файла.swp).