Что же такое Docker? Docker – это средство упаковки, доставки и запуска приложений.

А теперь немного базовых определений:

  • Docker image – это готовое к запуску приложение.
  • Docker container – это работающее приложение созданное на основе Docker image.

Tip: Весь исходный код из этой статьи вы можете найти в моем GitHub: https://github.com/ZeroBot-Dot/Docker-Hello-World

Для нашего примера нам понадобится создать папку проекта (например docker-hello-world) и в ней создать файл app.py со следующим содержимым:

print(“Привет, Мир!”)

Затем в этой же директории создаем файл с именем Dockerfile.

FROM python:3.6

RUN mkdir -p /usr/src/app/
WORKDIR /usr/src/app/

COPY . /usr/src/app/

CMD ["python", "app.py"]

Разберем содержимое этого файла.

Команда FROM указывает Docker какой взять Image за основу.

Команда RUN выполняет команду, которая идет за ним. Более подробно о основных команда терминала Linux вы можете прочитать в моей статье Основные команды терминала Linux

Команда WORKDIR указывает рабочий каталог.

Команда COPY указывает откуда и куда скопировать файлы. Первый аргумент указывает откуда, . означает текущую директорию (данный путь относится к нашему компьютеру). Второй аргумент указывает куда и данный путь уже относится к контейнеру Docker.

Команда CMD указывает что нужно сделать после запуска Docker контейнера. В данном примере запускаем Python с аргументом app.py

Теперь мы можем собрать наш Docker образ следующей командой:

docker build -t hello-world .

Данной командой мы запускаем сборку Docker image. Ключ -t имя_имэйджа указывает Докеру имя создаваемого образа, а . в конце указывает что нужно использовать текущий каталог.

После того как образ будет собран мы можем посмотреть, а какие вообще образы у нас есть. Вводим команду docker images. В выводе вы увидите hello-world и python, первый образ — это наш образ, который мы создали, а python это образ, на котором основан наш hello-world

Давайте же теперь запустим наш образ командой docker run hello-world

В консоли вы должны будете увидеть строку Привет, Мир! Это результат работы скрипта app.py

Теперь давайте просмотрим запущенные контейнеры. Вводим docker ps и… Пусто!

Все правильно, контейнеры Docker работают пока работает приложение внутри них. А наш скрипт вывел Привет, Мир! И закончил свою работу.

Чтобы посмотреть все контейнеры, даже те, которые остановились, вводим команду docker ps -a (ключ -a выводит список всех контейнеров).

А теперь пройдемся по остальным базовым командам.

docker rm CONTAINER_ID – удалить контейнер с указанным ID

docker rm $(docker ps -qa) – удалить все контейнеры

docker run -d IMAGE – запуск контейнера в фоновом режиме

docker stop CONTAINER_NAME – остановить контейнер запущенный в фоновом режиме

docker run --rm IMAGE – запускает контейнер который удалится сам после завершения работы

Это самая базовая информация по работе с Docker.

Обсудить эту заметку можно в нашем Телеграм канале: https://t.me/devops_spb_ru (@devops_spb_ru)

От DevOps

DevOps or not...