Когда я только начинал работать с Docker, мне было очень сложно разобраться во всём. Но вам не нужно беспокоиться. Я помогу.
Docker — это превосходный инструмент, который просто нельзя игнорировать. Docker используется повсюду!

Итак, я собрал базовые вещи, которые нужно знать о Docker, в одном материале. Гарантирую — всё кратко и лаконично.
Я познакомлю вас с концептами: контейнерами и образами. А затем мы напишем собственный Dockerfile для контейнеризации простого приложения на Python.
Содержание
Что такое Docker
Docker — это способ контейнеризации приложений (помещения кода в коробки, которые могут работать самостоятельно). Контейнеры работают и ощущаются как виртуальные машины, но на самом деле виртуальными машинами не являются.
Контейнеры — это коробки в изолированной среде, поэтому они не зависят от устройства, на котором запущены.
Представляйте это так: есть пчела, которой нравится жить только внутри своих сот, и она не сможет работать, если будет жить в любом другом месте. Вы просто помещаете пчелу в коробку, который выглядит и функционирует точно так же, как её любимые соты. Это и есть контейнеризация.
Контейнеры создаются с использованием образов.

Docker-образы
Образы в Docker похожи на шаблоны — как в раскраске с наклейками. Другими словами, в образе содержится набор инструкций для создания контейнера. Он включает в себя операционную систему, приложения, файлы конфигурации и переменные.
Но как создавать эти образы (чтобы потом создавать контейнеры)? Это делается с помощью Dockerfiles.
Всё о Dockerfiles
Dockerfile — это текстовый документ, содержащий все команды, которые пользователь может вызвать в командной строке для сборки образа.
Давайте создадим Dockerfile вместе.
Для начала скачайте Docker на своё устройство.
После этого напишем простое приложение на Flask и поместим его в контейнер. Вот пример приложения:

Несмотря на свою простоту, приложению много чего потребуется для запуска:
Python 3.9.
Flask (команда
pip install flask
).Доступ к port 5000.
Некоторые программы могут запускаться только на определённых операционных системах — например, только на Windows или только на Linux.
Все эти проблемы решаются путем написания простого Dockerfile, который устанавливает для нас Docker-образ.
Итак, нам нужно создать файл с именем Dockerfile
(без какого-либо расширения).
Пошаговая инструкция:
используйте
FROM
для использования базового образа ОС с установленным Python;используйте
RUN
чтобы выполнить pip install flask;используйте
COPY
для копирования файла app.py в контейнер;используйте
CMD
для запуска "python app.py", когда контейнер запустится.
Вот и всё!

Создание образа и запуск контейнера
Теперь создайте Docker-образ с помощью команды docker build
, а затем запустите образ с помощью команды docker run .
.
Вы также можете использовать --tag
, чтобы дать образу название и упростить его дальнейший запуск:
docker build --tag flask .
docker run --name flask -p 5000:5000 flask
Здесь --name
— это имя запускаемого контейнера (который я назвал flask), а -p
назначает порт Docker-контейнера на вашем компьютере, чтобы вы могли видеть своё приложение на localhost
. Наконец, flask
в названии — это имя образа, который будет запущен.
Дополнительные команды
Вот, в общем-то, и всё.
используйте команду
docker ps
, чтобы получить список запущенных контейнеров;docker ps -a
, чтобы получить список всех контейнеров;docker images
, чтобы получить список образов;docker --help
, чтобы получить список всех команд.
Попробуйте различные команды, они довольно понятные сами по себе. Официальная документация находится здесь.