停止使用 virtualenv、pyenv、nvm、goenv,使用 Docker 镜像
笔记
-
需要 Docker 和至少 4 GB RAM(有关详细信息,请参阅下面的评论部分)
-
不适用于单个应用程序
我为什么使用 Docker 镜像
使用 pyenv 和 nvm 等版本管理器
过时的。
例如,virtualenv/pyenv 仅封装了 Python 依赖项。
Docker 容器封装了整个操作系统及其多个依赖项。
Docker 已经允许拉取多个一键镜像,如 python、nodejs、golang 等...
docker pull python:3.9.0
# Dockerfile
FROM python:3.9.0
Docker 镜像和容器
Docker 镜像包含将应用程序作为容器运行所需的元素——例如代码、配置文件、环境变量、库和运行时。
Docker 容器可以被视为该图像的副本或打印输出。
例如,您可以有一个 Python 镜像和多个与该镜像相关的容器。
与操作系统隔离(全新安装)
您的操作系统上可能没有安装 python,您可以拉取 python 3.9 docker 镜像。
所以你只能在docker容器内使用python。
docker pull python:3.9.0
您可能已经在操作系统上安装了 python 2.7,并拉取了 python 3.9 docker 镜像。
它们不会相互冲突,但您只能在 docker 容器内使用 python 3.9。
如果你不再需要 python 3.9,你只需要删除与 python 3.9 镜像相关的 docker 容器和 python 3.9 镜像本身。
多个版本
您可以拉取 python 2.7 docker 镜像和 python 3.9 docker 镜像。
它们不会发生冲突。
多层
您可以拉取 python 2.9 docker 镜像并安装其他依赖项。
# Dockerfile
FROM python:3.9.0
...
COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt
升级 - 切换版本
您可以拉取 python 3.8 docker 镜像,然后切换到 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