mirror of
https://github.com/vimagick/dockerfiles.git
synced 2024-12-12 11:14:57 +02:00
68 lines
1.3 KiB
Markdown
68 lines
1.3 KiB
Markdown
jupyter
|
|
=======
|
|
|
|
Minimal Jupyter Notebook Stack
|
|
|
|
## docker-compose.yml
|
|
|
|
[how to select an image](https://jupyter-docker-stacks.readthedocs.io/en/latest/using/selecting.html)
|
|
|
|
```yaml
|
|
version: "3.8"
|
|
services:
|
|
notebook:
|
|
image: jupyter/minimal-notebook
|
|
ports:
|
|
- "8888:8888"
|
|
volumes:
|
|
- ./data:/home/jovyan
|
|
restart: unless-stopped
|
|
```
|
|
|
|
## up and running
|
|
|
|
```bash
|
|
$ cd ~/fig/jupyter/
|
|
$ mkdir -p data/.jupyter
|
|
$ chown -R 1000:100 data
|
|
$ docker-compose up -d
|
|
$ curl http://127.0.0.1:8888
|
|
```
|
|
|
|
## reset password
|
|
|
|
```bash
|
|
$ docker-compose exec notebook bash
|
|
>>> jupyter notebook password
|
|
Enter password: ******
|
|
Verify password: ******
|
|
[NotebookPasswordApp] Wrote hashed password to /home/jovyan/.jupyter/jupyter_notebook_config.json
|
|
$ docker-compose restart
|
|
```
|
|
|
|
## without password
|
|
|
|
File: ./data/.jupyter/jupyter_notebook_config.json
|
|
|
|
```json
|
|
{
|
|
"NotebookApp": {
|
|
"token": "",
|
|
"password": "",
|
|
"disable_check_xsrf": true
|
|
}
|
|
}
|
|
```
|
|
|
|
## kill idle kernels (1 week ago)
|
|
|
|
```bash
|
|
curl -s "http://127.0.0.1:8888/api/kernels" |
|
|
jq -r '.[]|select(now - (.last_activity|sub("\\..*Z";"Z")|fromdateiso8601) > 3600*24*7 and .connections==0).id' |
|
|
while read kid; do curl -s -w '\n' -X DELETE "http://127.0.0.1:8888/api/kernels/$kid"; done
|
|
```
|
|
|
|
## nginx config
|
|
|
|
- <https://hands-on.cloud/how-to-setup-jupyter-behind-nginx-proxy/>
|