Примечания
Требуется Docker и как минимум 4 ГБ ОЗУ (см. Раздел комментариев Below для более подробной информации)
Не применимо для одного приложения
Почему я использую Docker Images
Использование руководителей версий, таких как pyenv и nvm устарел Отказ
Например, Virtualenv/Pyenv только инкапсулирует зависимости Python.
Контейнеры Docker инкапсулируют целую ОС с несколькими зависимостями.
Docker уже позволяет потянуть несколько одноликных изображений, таких как Python, Nodejs, Golang и т. Д.
docker pull python:3.9.0
# Dockerfile FROM python:3.9.0
Докерские изображения и контейнеры
Образ докера включает в себя элементы, необходимые для запуска приложения в качестве контейнера — такого как код, файлы конфигурации, переменные среды, библиотеки и время выполнения.
Контейнер Docker можно рассматривать как реплику или как распечатка этого изображения.
Например, вы можете иметь один образ Python и несколько контейнеров, связанных с этим изображением.
Изоляция с ОС (Чистая установка)
У вас может быть не установлен Python на вашей ОС, и вы можете потянуть Python 3.9 Docker Image.
Таким образом, вы можете использовать только Python внутри контейнера Docker.
docker pull python:3.9.0
У вас может быть установлен Python 2.7 на вашей ОС и потяните Python 3.9 Docker Image.
Они не будут конфликтуют вместе, но вы можете использовать только Python 3.9 внутри контейнера Docker.
Если вы больше не хотите Python 3.9, вам просто нужно удалить контейнер Docker, связанный с изображением Python 3.9 и сам изображение Python 3.9.
Несколько версий
Вы можете потянуть Python 2.7 Docker Image и Python 3.9 Docker Image.
Они не будут конфликтуют вместе.
Несколько слоев
Вы можете потянуть Python 2.9 Docker Image и установите дополнительные зависимости.
# Dockerfile FROM python:3.9.0 ... COPY requirements.txt /app/requirements.txt RUN pip install -r requirements.txt
Обновление — Версии переключения
Вы можете вытащить изображение Docker Python 3.8, а затем переключиться на изображение 3.9.
# Dockerfile FROM python:3.8.0 -> FROM python:3.9.0
Пример: Python
# Dockerfile FROM python:3.9.0
# Dockerfile FROM python:3.9.0-alpine
Пример: узел
# Dockerfile FROM node:14.16.0
# Dockerfile FROM node:14.16.0-alpine
Центр
Ссылки
Оригинал: «https://dev.to/javidjms/stop-using-virtualenv-pyenv-nvm-goenv-and-use-docker-images-40mn»