Wybór polecenia startowego dla obrazu Docker

Wprowadzenie do Dockera

Tim Sangster

Software Engineer @ DataCamp

Czym jest polecenie startowe?

Obraz hello-world wyświetla tekst i zatrzymuje się.

docker run hello-world
Hello from Docker!

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon created a new container from the hello-world image which runs the
    executable that produces the output you are currently reading.
 3. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.
Wprowadzenie do Dockera

Czym jest polecenie startowe?

Obraz z Pythonem może uruchamiać Pythona przy starcie.

docker run python3-sandbox
Python 3.10.6 (main, Nov  2 2022, 18:53:38) [GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
...
....
>>> exit()
repl@host:/#
Wprowadzenie do Dockera

Uruchamianie polecenia powłoki przy starcie

CMD <shell-command>

Instrukcja CMD:

  • Uruchamiana przy starcie obrazu.
  • Nie zwiększa rozmiaru obrazu.
  • Nie wydłuża czasu budowania.
  • Jeśli istnieje wiele instrukcji CMD, tylko ostatnia ma efekt.
Wprowadzenie do Dockera

Typowe zastosowania

Uruchamianie aplikacji obsługującej przepływ pracy lub przyjmującej połączenia zewnętrzne.

CMD python3 my_pipeline.py
CMD postgres

Uruchamianie skryptu, który z kolei uruchamia wiele aplikacji

CMD start.sh
CMD python3 start_pipeline.py
Wprowadzenie do Dockera

Kiedy kontener się zatrzymuje?

$$

  • Obraz hello-world -> Po wyświetleniu tekstu
  • Obraz bazy danych -> Po zakończeniu działania bazy danych

$$

Bardziej ogólny obraz wymaga bardziej ogólnego polecenia startowego.

  • Obraz Ubuntu -> Po zamknięciu powłoki
Wprowadzenie do Dockera

Nadpisywanie domyślnego polecenia startowego

Uruchamianie obrazu

docker run <image>

Uruchamianie obrazu z niestandardowym poleceniem startowym

docker run <image> <shell-command>

Interaktywne uruchamianie obrazu z niestandardowym poleceniem startowym

docker run -it <image> <shell-command>
docker run -it ubuntu bash
Wprowadzenie do Dockera

Podsumowanie

Zastosowanie Instrukcja Dockerfile
Dodaje polecenie powłoki uruchamiane przy starcie kontenera. CMD <shell-command>

Zastosowanie Polecenie powłoki
Nadpisanie CMD ustawionego w obrazie docker run <image> <shell-command>
Nadpisanie CMD i uruchomienie interaktywne docker run -it <image> <shell-command>
Wprowadzenie do Dockera

Czas na ćwiczenia!

Wprowadzenie do Dockera

Preparing Video For Download...