Использование Docker для разработки на Python 1/2

Использование Docker для разработки на Python 1/2
Содержимое страницы

Docker - технология, развиваемая примерно с 2008 года для решения вопроса независимости среды выполнения от внешних условий. Общепринятое определение гласит, что Docker: это средство упаковки, доставки и запуска приложений. В этой статье разберемся с тем как Docker устанавливается а также освоим базовые команды для манипуляции образами.

Средство упаковки

Docker Image - приложение, которое подготовлено к запуску и включающее все необходимые зависимости. Еще одна технология, значительно упрощающая деплой и вообще организацию совместной работы в больших командах - docker-compose.
Docker Compose - это инструмент, позволяющий скомпоновать многоконтейнерное приложение использующее несколько исходных образов.

Средство запуска

Docker Container - работающее приложение, созданное на базе Docker Image. При этом Image является неизменяемым образом, по сути прототипом, который используется каждый раз при старте контейнера. Каждый контейнер работает изолированно от других, но при этом контейнеры могут использовать одни и те же ресурсы опарционной системы и оборудования. Таким образом, контейнер это нечто промежуточное между технологиями виртуализации и изоляции на основе chroot.

Разумеется Docker предоставляет различные способы уравления контйнерами для их создания, запуска и внедрения.

Средство доставки

Помимо всего этого существует “магазин образов” Docker Hub в котором размещаются тысячи имиджей, которые были уже разработаны собществом и, в том числе,:w официально поддерживаемые образы, например для Ubuntu Linux, Python или, например, для такой платформы как HCL Domino (ранее IBM).

1a. Установка Docker [MacOS]

Загрузите и установите Docker Desktop. Docker-compose входит в состав установочного дистрибутива, так что нет необходимости устанавливать его отдельно.

1b. Установка Docker Engine из репозитория [Ubuntu Linux 20.04]

Способ имеющий недостаток: как правило версия Docker в репозитории Ubuntu несколько отстает от последнего релиза. Для кого-то это имеет значение и тогда переходим к пункту 1c.

# Обновим базу пакетов
sudo apt update
sudo apt upgrade
# Установка из официального репозитория Ubuntu
sudo apt install docker.io
# Автоматический старт сервиса Docker после загрузки сервера
sudo systemctl enable --now docker

1c. Установка из официального репозитория Docker

Находим целевой дистрибутив операционной системы на странице https://docs.docker.com/engine/install/, в нашем случае Ubutnu, изучаем возможные способы установки. В моем случае я пошел по пути описанному в разделе Install using the convenience script.

Сначала необходимо удалить версии установленные через apt. Если произойдет ошибка в связи с тем, что какой-то пакет не установлен, на это можно не обращать внимания.

sudo apt-get remove docker docker-engine docker.io containerd runc
# Загрузка скрипта установки
curl -fsSL https://get.docker.com -o get-docker.sh
# Запуск скрипта
sudo sh get-docker.sh

2a. Устанавливаем docker-compose из репозитория [Ubuntu Linux 20.04]

Минус этого варианта такой-же: отставание от официального релиза.

sudo apt update
sudo apt install docker-compose

2b. Установка docker-compose из репозитория Docker

Установка пакета docker-compose:

# Загрузка
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Устанавливаем права на выполнение
sudo chmod +x /usr/local/bin/docker-compose