JupyterNotebook-Docker版

简介: 制作jupyter notebook的docker镜像,兼容numpy, pandas, matplotlib, pyspark, opencv-python, requests, flask等组件。

制作前提:电脑安装并启动Docker Desktop
详细步骤如下:
(1)样式文件 custom.css

.CodeMirror pre {font-family: Consolas; font-size: 12pt;}
* {font-family: Consolas;}
div.output_area pre {font-family: Consolas; font-size: 12pt;}
div.input_prompt {font-family: Consolas; font-size: 12pt;}
div.out_prompt_overlay {font-family: Consolas; font-size: 12pt;}
div.prompt {font-family: Consolas; font-size: 12pt;}
span.cm-comment {font-family:  Consolas !important; font-style:normal !important; color:#BB3D00 !important;}

(2)镜像生成文件Dockerfile

FROM python:3.9.16

RUN python -m pip install --upgrade pip
RUN pip config set global.index-url https://mirrors.aliyun.com/pypi/simple
RUN pip install numpy
RUN pip install scipy
RUN pip install pillow
RUN pip install matplotlib
RUN pip install pandas
RUN pip install pyspark
RUN pip install psutil
RUN pip install virtualenv
RUN pip install virtualenvwrapper
RUN pip install opencv-python
RUN pip install requests
RUN pip install flask_wtf
RUN pip install flask-sqlalchemy
RUN pip install flask-mysqldb
RUN pip install scikit-image
RUN pip install notebook

# 创建用户
RUN useradd -ms /bin/bash yanghaitao

# 设置默认目录
RUN jupyter notebook --generate-config
RUN echo "c.NotebookApp.notebook_dir='/home/yanghaitao'" >> /root/.jupyter/jupyter_notebook_config.py

# 设置默认的字体
COPY custom.css /root/.jupyter/custom/
COPY custom.css /root/.jupyter/

EXPOSE 8888
CMD jupyter notebook --ip 0.0.0.0 --port 8888 --allow-root --no-browser

(3)构建命令
将两个文件放在同一目录下,运行构建命令

docker build -t my-jupyter-notebook:latest .

需要等待较长时间
(4)查看镜像

docker images

(5)window端测试运行命令

docker run -p 8888:8888 my-jupyter-notebook:latest

(6)镜像下载为本地文件

# 将镜像打包为本地文件
# 指令:docker save 镜像id > 文件名.tar   缺点:load之后没有tag
# docker save -o my-jupyter-notebook.tar my-jupyter-notebook:latest
docker save ee2a262aa724 > my-jupyter-notebook.tar

大约2.7G,上传到目标服务器。

(7)将镜像文件加载到docker中

# 将本地文件加载为镜像
# 指令:docker load < 文件名.tar
docker load < my-jupyter-notebook.tar

如果根据镜像ID导出为文件,加载的镜像没有tag信息,可以重命名

# 镜像重命名
# docker tag  旧镜像名  新镜像名
# docker tag  镜像id  仓库:标签
docker tag ee2a262aa724 my-jupyter-notebook:latest

(8)挂载数据卷
为了能够保存jupyter notebook的文档,必须将docker中的文档保存到linux服务器上,不然一旦docker容器被删掉,文档就不在了。启动命令如下:

# 挂载数据卷
# -v 宿主机的绝对路径:容器内路径
docker run -p 8888:8888 
    -v /opt/jupyter/notebook:/home/yanghaitao
       -d my-jupyter-notebook:latest

(9)浏览器访问Notebook
http://ip:8888/
(10)获取token

# 进入容器
docker exec -it 92585929f745 /bin/bash
# 获取token
jupyter notebook list
相关文章
|
6月前
|
监控 应用服务中间件 nginx
|
运维 NoSQL Redis
Docker-基本了解
Docker-基本了解
74 3
|
Linux 虚拟化 开发者
docker介绍之一
docker介绍之一
55 1
|
存储 监控 开发者
Docker详解,你知道的和不知道的都在这儿
@[TOC](目录) Docker 是一个开源的容器化平台,允许开发者将应用程序和所有其依赖项打包成一个轻量级、可移植的容器,以便在任何地方运行。Docker 采用了 Linux Namespace 和 cgroups 等技术,实现了高度的资源隔离和安全保障,使得容器化应用得以快速、高效地部署和运行。 本文将详细介绍 Docker 的架构、原理和应用,包括以下内容: 1. Docker 的架构和原理 2. Docker 的安装和使用 3. Docker 的基本命令和操作 4. Docker 的容器管理 5. Docker 的网络管理 6. Docker 的存储管理 7.
150 0
|
5月前
|
存储 API 持续交付
Docker介绍(一)
Docker是开源的应用容器引擎,让开发者打包应用及依赖到可移植容器中,可在任何环境一致运行。它提供快速启动、高效资源利用、轻松迁移和维护,适用于开发、测试和生产。Docker由客户端、守护进程、REST API组成,支持镜像存储在仓库如Docker Hub。容器是隔离的执行环境,能在同一主机上互不影响地运行多个容器。
|
运维 Java 程序员
【docker】对docker的理解
【docker】对docker的理解
|
Java Linux 虚拟化
|
NoSQL MongoDB Nacos
Docker的运用
Docker的运用
63 0
|
JavaScript 应用服务中间件 API
Docker
Docker 是一种开源的容器化平台,可以让开发者在容器中快速构建、打包、发布和运行应用程序,从而实现应用程序的快速交付和部署。
470 1
下一篇
无影云桌面