To nie jest bezpośrednia odpowiedź na twoje pytanie, ale w rzeczywistości może być ważniejsza i natknąłem się na to, czytając inne odpowiedzi tutaj.
Miałem trochę doświadczenia z migracją skomplikowanych systemów do Dockera, a jedną z ważniejszych realizacji, jakie miałem, jest to, że najlepiej mieć jeden kontener Docker na aplikację / usługę lub „na demona”.
Jednym z bardzo ważnych powodów jest to, że Docker nie zamknie czysto usług, które rozpoczynasz od systemctl aw rzeczywistości może dojść do tego samego rodzaju uszkodzeń bazy danych, które wynikają z nieoczekiwanego zaniku zasilania.
Aby zagłębić się w to nieco głębiej: kiedy Docker wydaje polecenie „stop” do kontenera, wysyła sygnał SIGTERM tylko jeden proces rozpoczęty za pomocą CMD / ENTRYPOINT, a nie do wszystkich usług i demonów. Tak więc jedna usługa ma ostrzeżenie, aby zamknąć w sposób czysty, a wszystkie pozostałe zostają bezceremonialnie zakończone.
Jeśli absolutnie musisz spakować dwie usługi w tym samym kontenerze (tj. Twoją aplikację i bazę danych PostgreSQL lub coś w tym rodzaju), musisz mieć CMD / ENTRYPOINT jako skrypt, który łapie SIGTERM, a następnie ponownie nadaje go do tych znanych usług. Można to zrobić, ale jeśli masz okazję, ponownie przemyśl swoje rozwiązanie i spróbuj rozbić je na wiele pojemników.
Dodatek
Na stronie Docker znajduje się interesująca notatka / strona o używaniu superwizora, jeśli absolutnie potrzebujesz mieć wiele usług działających w tym samym kontenerze.
sudo
?