Shadowsocks в Docker: docker-compose для сервера и безопасные переменные
Docker упрощает упаковку сервиса, но не отменяет настройку сети и секретов. Пароль не должен попадать в образ, репозиторий, лог или опубликованный compose-файл.
Содержание
Что должен решать Docker
Контейнер делает запуск повторяемым, но не защищает автоматически открытый порт, слабый пароль или конфиг, попавший в git. Используйте официальный образ или собирайте свой из доверенного Dockerfile.
Как хранить конфигурацию
Разместите JSON вне репозитория и подключайте его в контейнер read-only. В нём остаются method, password и port. Переменные окружения допустимы для автоматизации, но их тоже нельзя коммитить: они видны в части инструментов диагностики.
Порты и обновления
Публикуйте одинаковый внешний номер для TCP и UDP только если этого требует выбранный режим. Перед обновлением сохраните конфиг и версию образа, затем проверьте один клиент и журнал. Политика restart не заменяет мониторинг.
Мини-чеклист
- Хранить config.json вне git
- Монтировать конфиг read-only
- Пробросить нужные TCP и UDP
- Проверить логи после обновления
Частые ошибки
- Вставлять пароль в Dockerfile
- Публиковать .env
- Обновлять latest без проверки
Источники и документация
FAQ
Docker быстрее обычной установки?
Обычно выбор делают ради воспроизводимости и изоляции, а не ради гарантированного прироста скорости.
Можно ли передать пароль через compose?
Технически можно, но безопаснее вынести секрет в файл или менеджер секретов с ограниченным доступом.
Хотите перейти сразу к рабочему доступу?
Если сценарий уже ясен и не хочется проходить все шаги вручную, оформите доступ и проверьте подключение на своем устройстве.
Получить доступ