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 image 的镜像,因此既适合作为普通的 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 client 之间的软件版本匹配非常重要。因此,通常最好在 Jupyter 和 Worker 镜像中包含相同的额外包。
来源¶
Docker 文件托管在 https://github.com/dask/dask-docker。此仓库还包含一个 docker-compose 配置。