Docker 镜像
内容
Docker 镜像¶
示例 Docker 镜像维护在 https://github.com/dask/dask-docker 。
每个镜像在基于Debian镜像的Miniconda安装之上安装了完整的Dask conda环境(包括分布式调度器)、Numpy和Pandas。
这些图片很大,大约1GB。
ghcr.io/dask/dask
: 这是一个包含完整 Dask conda 包(包括分布式调度器)、Numpy 和 Pandas 的普通 debian + miniconda 镜像。该镜像大小约为 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
然后,在笔记本环境中,你可以像这样连接到 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 工作软件环境中:
docker run --network dask -e EXTRA_CONDA_PACKAGES="joblib" ghcr.io/dask/dask dask-worker scheduler:8786
请注意,使用这些可能会显著延迟容器的启动时间,尤其是在使用 apt
或 conda
时(pip
相对较快)。
记住,Dask 工作者和 Dask 客户端之间的软件版本匹配很重要。因此,在 Jupyter 和 Worker 镜像中包含相同的额外包通常是有用的。
源代码¶
Docker 文件维护在 https://github.com/dask/dask-docker。该仓库还包括一个 docker-compose 配置。