Docker 镜像
目录
Docker 镜像¶
示例 Docker 镜像维护在 https://github.com/dask/dask-docker。
每个镜像都在 Debian 镜像和 Miniconda 安装之上,安装了完整的 Dask conda 环境(包括分布式调度器)、Numpy 和 Pandas。
这些镜像较大,大约 1GB。
ghcr.io/dask/dask
: 这是一个标准的 debian + miniconda 镜像,包含完整的 Dask conda 包(包括分布式调度器)、Numpy 和 Pandas。此镜像大小约为 1GB。ghcr.io/dask/dask-notebook
: 此镜像基于 Jupyter base-notebook 镜像,因此既适合作为普通的 Jupyter 服务器使用,也适合作为 JupyterHub 部署的一部分使用。它还包含上述描述的匹配的 Dask 软件环境。此镜像大小约为 2GB。
示例¶
这是一个在专用虚拟网络上的简单示例
docker network create dask
docker run --network dask -p 8787:8787 --name scheduler ghcr.io/dask/dask dask-scheduler # start scheduler
docker run --network dask ghcr.io/dask/dask dask-worker scheduler:8786 # start worker
docker run --network dask ghcr.io/dask/dask dask-worker scheduler:8786 # start worker
docker run --network dask ghcr.io/dask/dask dask-worker scheduler:8786 # start worker
docker run --network dask -p 8888:8888 ghcr.io/dask/dask-notebook # start Jupyter server
然后从 notebook 环境中,你可以像这样连接到 Dask 集群
from dask.distributed import Client
client = Client("scheduler:8786")
client
可扩展性¶
用户可以通过填充环境变量 EXTRA_APT_PACKAGES
、EXTRA_CONDA_PACKAGES
和 EXTRA_PIP_PACKAGES
来轻微自定义软件环境。如果在容器中设置了这些环境变量,它们将分别触发以下调用
apt-get install $EXTRA_APT_PACKAGES
conda install $EXTRA_CONDA_PACKAGES
python -m pip install $EXTRA_PIP_PACKAGES
例如,以下 conda
命令将 joblib
包安装到 Dask worker 软件环境中
docker run --network dask -e EXTRA_CONDA_PACKAGES="joblib" ghcr.io/dask/dask dask-worker scheduler:8786
请注意,使用这些方法可能会显著延迟容器启动,尤其是在使用 apt
或 conda
时(pip
相对较快)。
请记住,Dask worker 和 Dask 客户端之间的软件版本匹配非常重要。因此,在 Jupyter 和 Worker 镜像中包含相同的额外软件包通常很有用。
源文件¶
Docker 文件维护在 https://github.com/dask/dask-docker。此仓库还包含一个 docker-compose 配置。