Jupyter notebook 如何在本地计算机和子域中安装带有Docker的JupyterHub
我将在子域中运行JupyterHub。这是Dockerfile,jupyterhub_config.py、.gitlab-ci.yml。 我的第一个问题是如何配置jupyter_config.py。如何在容器中的构建上加载jupyterhub_config.py 如何在.gitlab-ci.yml中启动Jupyterhub进行测试,以及如何在子域中复制应用程序?我写了一个README.md。我需要一点帮助来建造JupyterHub。如果一切正常,我将编写一个完整的如何在本地计算机上安装JupyterHub,以及如何由提供商在子域中安装JupyterHubJupyter notebook 如何在本地计算机和子域中安装带有Docker的JupyterHub,jupyter-notebook,jupyter-lab,jupyterhub,jupyter-console,Jupyter Notebook,Jupyter Lab,Jupyterhub,Jupyter Console,我将在子域中运行JupyterHub。这是Dockerfile,jupyterhub_config.py、.gitlab-ci.yml。 我的第一个问题是如何配置jupyter_config.py。如何在容器中的构建上加载jupyterhub_config.py 如何在.gitlab-ci.yml中启动Jupyterhub进行测试,以及如何在子域中复制应用程序?我写了一个README.md。我需要一点帮助来建造JupyterHub。如果一切正常,我将编写一个完整的如何在本地计算机上安装Jupyt
FROM continuumio/miniconda3
# Updating packages
RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \
git \
nano \
unzip \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# Install conda and Jupyter
RUN conda update -y conda
RUN conda install -c conda-forge jupyter_nbextensions_configurator \
jupyterhub \
jupyterlab \
matplotlib \
pandas \
scipy
# Setup application
EXPOSE 8000
CMD ["jupyterhub", "--ip='*'", "--port=8000", "--no-browser", "--allow-root"]
.gitlab-ci.yml
image: docker:latest
variables:
CONTAINER_IMAGE: registry.gitlab.com/joklein
DOCKER_IMAGE: jupyterhub
TAG: 0.1.0
services:
- docker:dind
stages:
- build
- test
- release
- deploy
before_script:
- echo "$GITLAB_PASSWORD" | docker login registry.gitlab.com --username $GITLAB_USER --password-stdin
build:
stage: build
script:
- docker build -t $CONTAINER_IMAGE/$DOCKER_IMAGE .
- docker push $CONTAINER_IMAGE/$DOCKER_IMAGE
test:
stage: test
script:
- docker pull $CONTAINER_IMAGE/$DOCKER_IMAGE
# - docker run $CONTAINER_IMAGE/$DOCKER_IMAGE -dt -p 8000:8000 --name $DOCKER_IMAGE
release:
stage: release
script:
- docker pull $CONTAINER_IMAGE/$DOCKER_IMAGE
- docker tag $CONTAINER_IMAGE/$DOCKER_IMAGE:latest $CONTAINER_IMAGE/$DOCKER_IMAGE:$TAG
- docker push $CONTAINER_IMAGE/$DOCKER_IMAGE:$TAG
only:
- master
deploy:
stage: deploy
image: alpine:latest
before_script:
- apk update && apk add git openssh-client rsync
script:
- mkdir .public
- cp -r * .public
- mv .public public
- mkdir "${HOME}/.ssh"
- echo "${SSH_HOST_KEY}" > "${HOME}/.ssh/known_hosts"
- echo "${SSH_PRIVATE_KEY}" > "${HOME}/.ssh/id_rsa"
- chmod 700 "${HOME}/.ssh/id_rsa"
- rsync -hrvz --delete --exclude=_ public/ user@example.com:www/jupyter/
only:
- master
jupyterhub_config.py
c = get_config()
# Letsencrypt (https://letsencrypt.org/) to obtain a free, trusted SSL
# certificate.
c.JupyterHub.ssl_key = '/etc/letsencrypt/live/example.com/privkey.pem'
c.JupyterHub.ssl_cert = '/etc/letsencrypt/live/example.com/fullchain.pem'
c.JupyterHub.port = 443
#
# Change from JupyterHub to JupyterLab
c.Spawner.default_url = '/lab'
c.Spawner.debug = True
#
# # Specify users and admin
c.Authenticator.whitelist = {"systemuser"}
c.Authenticator.admin_users = {"systemuser"}
JupyterHub和JupyterLab的Docker基地图像
JupyterHub是一款用于Jupyter笔记本电脑的多用户服务器。JupyterLab是
Jupyter项目的下一代基于web的用户界面。这
JupyterHub是和的基础映像
它作为一个独立的应用程序在(子)域中工作
从该映像派生的映像可以作为独立服务器运行,也可以作为
用作服务器的卷映像。也可以在CI/CD中使用它们
系统(如GitLab CI)在将内容绑定到应用程序之前构建内容
独立服务器容器
构建你的JupyterHub形象
基于此结构,您可以轻松地根据需要构建图像。使用生成的图像有两个选项:
- 作为一个独立的形象
- 作为Web服务器的卷映像
docker build-t juypterhub.
您的JupyterHub和JupyterLab将在此构建过程中自动生成
运行容器
docker run-p 8000:8000-d--名称jupyterhub jupyterhub jupyterhub
-p
用于将您的本地端口8000
映射到集装箱端口8000
-d
用于在后台运行容器。JupyterHub只会写
日志,因此无需在终端中输出它们,除非您想对服务器错误进行故障排除
-- 命名jupyterhub
命名您的容器jupyterhub
jupyterhub
图像
jupyterhub
是用于启动jupyterhub服务器的最后一个命令
您的JupyterHub
和Jupyterlab
现在可从http://localhost:8000
启动/停止JupyterHub
docker启动/停止juyterhub
配置JupyterHub
让我们为JupyterHub加密证书
要在网站上启用HTTPS,您需要从证书颁发机构(CA)获取证书(一种文件类型)。Let's Encrypt是CA。为了从Let's Encrypt获得网站域的证书,您必须
演示对域的控制。使用Let's Encrypt,您可以使用
使用ACME协议的软件,该协议通常在web主机上运行
更改为并为您的域生成证书。作为
结果您得到四个文件,域key.txt,域crt.txt,domain-csr.txt,account-key.txt。此文件使用base 64,在中可读
ASCII,不是二进制格式。证书已采用PEM格式。只是
将扩展名更改为*.pem
对于JupyterHub,只需要文件domain-key.txt和domain-crt
cp-domain-crt.txt fullchain.pem
cp domain-key.txt privkey.pem
在容器中添加系统用户
默认情况下,JupyterHub在服务器上搜索用户。为了能够
登录到我们的新JupyterHub服务器,我们需要连接到JupyterHub docker
容器,并使用密码创建新的系统用户
docker exec-it jupyterhub bash
useradd——创建家庭系统用户
passwd系统用户
退出
命令docker exec-it jupyterhub bash
将在您的
码头集装箱您可以使用根shell在中创建系统用户
容器。这些帐户将用于JupyterHub的身份验证
默认配置
第一个命令useradd创建一个名为systemuser的新用户。第二份遗嘱
询问您的密码。使用GitLab 12.0(2019年6月)及其
通过GitLab的Kubernetes集成部署JupyterHub提供了一种开始使用Jupyter笔记本电脑的简单方法,它可以用于创建和共享包含实时代码、可视化甚至运行手册的文档
从GitLab 12.0开始,在Kubernetes群集上安装JupyterHub时,会自动配置JupyterLab的Git扩展
这种集成支持对笔记本电脑的完整版本控制,以及在Jupyter中发布Git命令。Git命令可以通过左面板上的Git选项卡或Jupyter的命令行提示符发出
见和
这就是我们的计划
它在/srv/jupyterhub
中创建了一个config.py文件,您如何应用该配置?
jupyterhub --generate-config