Files
docker-jupyterhub/README.md
2024-01-13 21:44:03 +08:00

119 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# docker-jupyterhub
## Getting started
[main reference](https://github.com/jupyterhub/jupyterhub-deploy-docker)
构建自己的docker镜像
修改自己想要的python环境在文件`Dockerfile.jupyterhub`
基础镜像是:`jupyter/scipy-notebook` 里面含有conda
```shell
docker buildx build -t hotwa/jupyterhub:latest . -f Dockerfile.jupyterhub --load
```
修改docker-compose.yml文件环境变量DOCKER_NOTEBOOK_IMAGE
```shell
DOCKER_NOTEBOOK_IMAGE: hotwa/jupyterhub:latest
```
也可以通过 docker-compose 构建镜像
```shell
docker compose build
```
启动docker-compose.yml
```shell
docker compose up -d
```
停止
```shell
docker compose down
```
[基本镜像](https://github.com/jupyter/docker-stacks/tree/main/images/base-notebook)
https://github.com/jupyter/docker-stacks/tree/main/images
[jupyter-gpu](https://github.com/iot-salzburg/gpu-jupyter)
构建自己的基础镜像:
```shell
git clone https://github.com/jupyter/docker-stacks
cd docker-stacks/images/base-notebook
# 修改这个目录下面的 Dockerfile文件, 在后面加就行里面已经有了mamba、conda
docker buildx build -t hotwa/notebook:latest . -f Dockerfile
```
## Alternatives
- [rocker/binder](https://rocker-project.org/images/versioned/binder.html) -
From the R focused [rocker-project](https://rocker-project.org),
lets you run both RStudio and Jupyter either standalone or in a JupyterHub
- [jupyter/repo2docker](https://github.com/jupyterhub/repo2docker) -
Turn git repositories into Jupyter-enabled Docker Images
- [openshift/source-to-image](https://github.com/openshift/source-to-image) -
A tool for building artifacts from source code and injecting them into docker images
- [jupyter-on-openshift/jupyter-notebooks](https://github.com/jupyter-on-openshift/jupyter-notebooks) -
OpenShift compatible S2I builder for basic notebook images
## nvidia-container-toolkit add
参考了 llama [容器部署](https://hub.docker.com/r/ollama/ollama)
```shell
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
| sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
| sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
```
Configure Docker to use Nvidia driver
```shell
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
```
配置完成之后:
```shell
docker-compose up -d
```
在jupyterhub_config.py中添加这样jupyterhub的容器启动镜像就可以使用宿主机的显卡了
```python
# GPU 和网络配置
c.DockerSpawner.extra_host_config = {
#'network_mode': 'host',
'runtime': 'nvidia'
}
c.DockerSpawner.environment = {
'NVIDIA_DRIVER_CAPABILITIES': 'compute,utility',
'NVIDIA_VISIBLE_DEVICES': 'all'
}
```
## 清除卷
```shell
docker volume ls
docker-compose down
docker rm <container_name_or_id>
docker volume rm basic-example_jupyterhub-data
docker volume rm docker-jupyterhub_jupyterhub-data
docker volume rm jupyterhub-user-admin
```