ENTRYPOINT vs CMD
ENTRYPOINT¶
Jest to polecenie umożliwiające przekazanie całego polecenia, wykonanie skryptu, które będzie wykonane w kontenerze, jako ostatni krok przy budowaniu kontenera (już podczas uruchamiania kontenera).
Dzięki jego użyciu podczas wykonywania polecenia [[docker run - uruchomienie kontenera|docker run]] możliwe jest przekazanie parametru do części polecenia.
Użycie¶
Możemy (a nawet musimy, bo się nie uruchomi) przekazać wybraną wartość podczas robienia polecenia [[docker run - uruchomienie kontenera|docker run]].
Przykładowo:
Gdy nie podamy wartości podczas uruchamiania pojawi się taki komunikat:
Aby uniknąć takiego problemu należy dodać polecenie CMD.
CMD¶
Działa na podobnej zasadzie co ENTRYPOINT - wykonuje określone polecenie lub skrypt, tylko podczas uruchamiania jego wartości mogą być nadpisane.
Odbywa się to w taki sposób
Wartość 5 będzie domyślna, lecz podczas uruchamiania można ją nadpisać.
Można to zrobić w taki sposób:
Wtedy, gdy nie wpiszemy wartości 10 wówczas domyślnie będzie 5 sekund, a po wpisaniu będzie 10 sekund wykonywane polecenie sleep.
Podsumowując¶
-
ENTRYPOINT - wykonywanie poleceń lub skryptów podczas uruchamiania kontenera, domyślnie nie możemy nadpisywać, a jedynie dodawać nowe parametry
Możemy dodać z użyciem
--entrypointdo poleceniadocker run -
CMD - wykonywanie poleceń lub skryptów. Podczas dodania do
docker runna koniec parametrów, bądź polecenia nadpisywane jest domyślne w zbudowanym (przykładowo z użyciemDockerfile) kontenerze -
Takie połączenie:
Spowoduje wykonanie polecenia: docker-entrypoint.sh apache2-foreground.