Установка скиллов и плагинов OpenClaw осуществляется на ваш страх и риск. Все файлы были получены из открытых источников и предоставляются «как есть». Мы не гарантируем их корректную работу, безопасность или совместимость с вашей системой. Перед установкой настоятельно рекомендуется ознакомиться с содержимым кода и убедиться, что вы понимаете, какие изменения будут внесены в вашу систему.
Контейнеры Docker, образы, Compose-стеки, сети, тома, отладка и продакшн-харденинг — всё, что нужно для стабильной работы реальных окружений. Этот материал — концентрат практических ловушек и правил, которые экономят часы (а иногда и дни) при работе с Docker.
Конфигурация логов
Драйвер логирования json-file по умолчанию не имеет ограничения по размеру. Один «разговорчивый» контейнер способен заполнить диск и уронить хост. Ограничивайте размер логов заранее.
Ловушки при работе с образами
- Многостадийные сборки: забытый
--from=builderможет тихо скопировать не тот слой. COPYпередRUNломает кеш при каждом изменении файлов — сначала копируйте зависимости, затем код.ADDавтоматически распаковывает архивы — используйтеCOPY, если это не требуется.- Build-аргументы сохраняются в истории образа — не используйте их для секретов.
Ловушки во время выполнения
localhostвнутри контейнера — это сам контейнер, а не хост.- Порт уже занят — возможно, предыдущий контейнер ещё завершает работу.
- Код выхода 137 — контейнер убит по OOM, 139 — segfault.
- В distroless-образах нет shell — используйте
docker cpили sidecar для отладки.
Сетевые ловушки
- DNS контейнеров работает только в пользовательских сетях.
- Проброшенные порты по умолчанию доступны на
0.0.0.0— ограничивайте до127.0.0.1, если нужно. - «Зомби»-соединения после падения контейнера — используйте healthcheck и restart-политику.
Ловушки Docker Compose
depends_onждёт запуска контейнера, но не готовности сервиса.- Файл
.envигнорируется, если лежит не рядом сdocker-compose.yml. - Монтирование томов перезаписывает данные контейнера.
- YAML-анкоры не работают между файлами.
Тома и хранение
- Анонимные тома накапливаются незаметно — используйте именованные.
- Проблемы прав доступа при bind mount — пользователь контейнера должен совпадать с хостом.
docker system pruneне удаляет тома без флага--volumes.- Данные остановленных контейнеров сохраняются до удаления контейнера.
Утечки ресурсов
- Неиспользуемые образы растут бесконечно — очищайте через
docker image prune. - Кеш сборки занимает всё больше места — используйте
docker builder prune. - Остановленные контейнеры продолжают занимать диск.
- Сети от Compose-проектов накапливаются со временем.
Безопасность и секреты
ENVиCOPYнавсегда сохраняют секреты в слоях образа.--privilegedотключает всю изоляцию — почти никогда не нужен.- Образы из неизвестных источников могут быть вредоносными.
- Секреты в переменных окружения видны через
docker inspect.
Отладка
- Проверяйте логи даже у упавших контейнеров:
docker logs. - Коды выхода помогают быстро понять причину падения.
- Файлы из «мёртвого» контейнера можно извлечь через
docker cp.
Docker — это мощный инструмент, но большинство проблем возникает не из-за сложности, а из-за скрытых допущений. Понимание этих ловушек позволяет строить стабильные и предсказуемые системы.
Файл из источника