Как стать автором
Обновить

Комментарии 3

да не — нормальный пост
спасибо за разбор базового образа.
на данный момент существует ряд подходов к работе с докером, в частности отключение ssh и т.д.
более подробно можно почитать на английском у phusion, у них же есть базовый образ на основе последней ubuntu.
baseimage-docker не советую! Объясню почему:
  1. runit, используемый в качестве менеджера процессов, очень неудобен в использовании, особенно когда что-то идёт не так. Supervisord куда более приятен и к тому же сам умеет делать «reape unknown pid», так что «изобретения» в виде my_init не нужны.
  2. Ни ssh, ни nsenter теперь не являются необходимыми. Для входа в контейнер используется команда docker exec -ti CONTAINER_ID bash. Для более удобной работы в консоли внутри контейнера (запуск mc и тп.) рекомендую добавить в Dockerfile:
    ENV LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 TERM=xterm
    RUN locale-gen $LC_ALL
  3. Самое опасное: cron и logrotate пускаются со стандартными конфигами, не рассчитанными на работу в контейнерах. Пример: установили Apache, получили файл /etc/logrotate.d/apache2, внутри которого используется /etc/init.d, значит runit потеряет контроль над процессом после первой ротации логов.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.