Ответ 1
Я просто столкнулся с той же проблемой.
Глядя в контейнер:
[email protected]:/# cat /sbin/initctl
#!/bin/sh
exit 0
Я еще не тестировал его полностью, но я добавил следующее в свой файл Docker:
# Fix upstart
RUN rm -rf /sbin/initctl && ln -s /sbin/initctl.distrib /sbin/initctl
Я думал, что эта ссылка объясняет это довольно хорошо:
Когда контейнер Docker запускается, запускается только команда CMD. Единственными процессами, которые будут выполняться внутри контейнера, является команда CMD и все процессы, которые она порождает. Вот почему все виды важных системных служб не запускаются автоматически - вы должны запускать их самостоятельно.
Копаясь еще немного, я нашел официальный образ Ubuntu, содержащий рабочую версию upstart: https://registry.hub.docker.com/_/ubuntu-upstart/