Це не пряма відповідь на ваше запитання, але насправді це може бути важливіше, і я натрапив на це усвідомлення, читаючи тут інші відповіді.
Я мав певний досвід міграції деяких складних систем до Docker, і одна з найважливіших реалізацій, яку я мав, - це те, що в ідеалі вам слід мати один контейнер Docker на додаток / послугу або "на демон".
Однією з дуже вагомих причин цього є те, що Docker не буде чітко відключати послуги, які ви починаєте з systemctl, і насправді ви можете виявити такі ж пошкодження бази даних, які виникають внаслідок несподіваного відключення електроенергії.
Щоб зануритися в це трохи глибше: коли Докер видає контейнер команду "стоп", він надсилає сигналу SIGTERM лише той єдиний процес, який було розпочато з CMD / ENTRYPOINT, а не всім службам і демон. Так що одна служба має попередження про чистоту відключення, а всі інші безцеремонно припиняються.
Якщо вам абсолютно доведеться пакувати дві послуги в один контейнер (тобто вашу програму та базу даних PostgreSQL чи щось подібне), тоді вам потрібно, щоб ваш CMD / ENTRYPOINT був сценарієм, який ловить SIGTERM, а потім ретранслює його на ті відомі служби. Це можна зробити, але якщо у вас є можливість, переосмисліть своє рішення і спробуйте розбити його на кілька контейнерів.
Додаток
На сайті Docker є цікава примітка / сторінка про використання нагляду, якщо вам абсолютно потрібно мати кілька служб, що працюють в одному контейнері.
sudo
?