Вибір стартової команди для вашого образу Docker

Вступ до Docker

Tim Sangster

Software Engineer @ DataCamp

Що таке стартова команда?

Образ hello-world виводить текст і завершується.

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.
Вступ до Docker

Що таке стартова команда?

Образ із python може запускати python під час старту.

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:/#
Вступ до Docker

Запуск команди оболонки під час старту

CMD <shell-command>

Інструкція CMD:

  • Виконується під час старту образу.
  • Не збільшує розмір образу.
  • Не додає часу до збірки.
  • Якщо їх кілька, діє лише остання.
Вступ до Docker

Типові варіанти використання

Запуск застосунку для виконання конвеєра або приймання зовнішніх підключень.

CMD python3 my_pipeline.py
CMD postgres

Запуск скрипту, який своєю чергою запускає кілька застосунків

CMD start.sh
CMD python3 start_pipeline.py
Вступ до Docker

Коли він зупиниться?

$$

  • образ hello-world -> Після виведення тексту
  • образ бази даних -> Коли процес бази даних завершується

$$

Більш загальний образ потребує більш загальної стартової команди.

  • образ Ubuntu -> Коли закрито оболонку
Вступ до Docker

Перевизначення типової стартової команди

Запуск образу

docker run <image>

Запуск образу з власною стартовою командою

docker run <image> <shell-command>

Інтерактивний запуск образу з власною стартовою командою

docker run -it <image> <shell-command>
docker run -it ubuntu bash
Вступ до Docker

Підсумок

Використання Інструкція Dockerfile
Додати команду оболонки, що виконується під час старту контейнера з образу. CMD <shell-command>

Використання Команда оболонки
Перевизначити CMD, задану в образі docker run <image> <shell-command>
Перевизначити CMD і запустити інтерактивно docker run -it <image> <shell-command>
Вступ до Docker

Давайте потренуємось!

Вступ до Docker

Preparing Video For Download...