如何启动 TensorFlow Docker Jupyter Notebook?
简介
Jupyter Notebook 对于编写、测试和调试代码很有用。TensorFlow 是一个机器学习框架,可以与 Jupyter Notebook 一起使用。
在本文中,我们将探讨如何使用 Docker 启动 TensorFlow Jupyter Notebook,这将使我们能够利用这两个工具的优势。
先决条件
在开始之前,您需要在您的机器上安装 Docker 和 Docker Compose。您可以使用以下命令检查是否已安装:
$ docker --version $ docker-compose --version
您可以按照此处提供的操作系统安装说明进行操作:
https://docs.container.net.cn/get-docker/。
此外,如果您希望使用 TensorFlow,则必须拥有一个 Jupyter Notebook 文件。如果您还没有 Jupyter Notebook 文件,可以通过访问 Jupyter 主页并选择“新建”来创建一个新的 Jupyter Notebook 文件。
方法
您可以利用 Docker 启动 TensorFlow Jupyter Notebook 的方法有很多。
以下是三种常见的方法,我们将在本文中讨论:
使用 Docker Pull 命令
使用自定义 Docker 镜像
让我们详细探讨这三种方法,并通过一些示例来巩固我们的理解。
使用 Docker Pull 命令
docker pull 命令用于从注册表下载 Docker 镜像。当您想要启动 TensorFlow Docker Jupyter Notebook 时,这很有用,因为它允许您拉取一个预先构建的镜像,该镜像已安装 TensorFlow 和 Jupyter,而不是自己构建镜像。
示例
以下是如何使用 Docker Pull 命令启动带有 TensorFlow 的 Jupyter Notebook 服务器的示例。
步骤 1 − 通过在终端中运行以下命令,从 Docker Hub 拉取 TensorFlow Jupyter Notebook Docker 镜像:
$ docker pull tensorflow/tensorflow:latest-jupyter
输出
latest-jupyter: Pulling from tensorflow/tensorflow eaead16dc43b: Pulling fs layer 83bb66f4018d: Pulling fs layer a9d243755566: Pulling fs layer 38d8f03945ed: Waiting 0e62e78ef96b: Pulling fs layer 311604e9ab28: Waiting 584c5149ce07: Waiting 3b5c5b94152b: Waiting bc4c0cbbecee: Pulling fs layer e54d9b2b9c14: Waiting 744251fdb607: Pull complete 4b8f13a1718e: Pull complete 576cd80cf2ef: Pull complete ab9e5d943e8a: Pull complete 948afa4f3678: Pull complete 2881ce411453: Pull complete 3b726e62f5fc: Pull complete 2f02f34d5aa5: Pull complete b294ff4151bd: Pull complete 48f3a326b505: Pull complete 72ab8332d21f: Pull complete d6381c50d9a3: Pull complete 77237dfb2f16: Pull complete Digest: sha256:553be1359899095780cfcfc5bf1c26bca487a606f07a37ba31e1808a98072785 Status: Downloaded newer image for tensorflow/tensorflow:latest-jupyter docker.io/tensorflow/tensorflow:latest-jupyter
步骤 2 − 使用以下命令运行 TensorFlow Jupyter Notebook Docker 容器:
$ docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter
此命令将在 Docker 容器中启动 TensorFlow Jupyter Notebook 并公开端口 8888。
输出
docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter [I 12:23:48.212 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret jupyter_http_over_ws extension initialized. Listening on /http_over_websocket [I 12:23:50.824 NotebookApp] Serving notebooks from local directory: /tf [I 12:23:50.825 NotebookApp] Jupyter Notebook 6.5.2 is running at: [I 12:23:50.825 NotebookApp] http://2f07aa29bf45:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937 [I 12:23:50.825 NotebookApp] or http://127.0.0.1:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937 [I 12:23:50.826 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation). [C 12:23:50.845 NotebookApp] To access the notebook, open this file in a browser: file:///root/.local/share/jupyter/runtime/nbserver-1-open.html Or copy and paste one of these URLs: http://2f07aa29bf45:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937 or http://127.0.0.1:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937 [I 12:24:09.148 NotebookApp] 302 GET / (172.17.0.1) 3.370000ms [I 12:24:09.212 NotebookApp] 302 GET /tree? (172.17.0.1) 2.230000ms
步骤 3 − TensorFlow Jupyter Notebook 启动并运行后,您可以通过在 Web 浏览器中访问 https://:8888 来访问它:

步骤 3 − 要停止 TensorFlow Jupyter Notebook,请在运行 Docker 容器的终端窗口中按“Ctrl+C”。
输出
^C[I 12:42:41.867 NotebookApp] interrupted
Serving notebooks from local directory: /tf 0 active kernels Jupyter Notebook 6.5.2 is running at: http://2f07aa29bf45:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937 or http://127.0.0.1:8888/?token=d2b59435738257715a8a74b73d6c6f13e305008d4451c937 Shutdown this notebook server (y/[n])? y [C 12:42:43.742 NotebookApp] Shutdown confirmed [I 12:42:43.766 NotebookApp] Shutting down 0 kernels [I 12:42:43.804 NotebookApp] Shutting down 0 terminals
步骤 4 − 要再次启动 TensorFlow Jupyter Notebook,您可以使用与之前相同的 Docker run 命令:
$ docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter
使用自定义 Docker 镜像
您可以创建自己的 Docker 镜像来自定义 TensorFlow Jupyter Notebook 的环境。为此,您必须编写一个 Dockerfile,详细说明基本镜像以及您希望包含在内的任何其他依赖项。
要创建自定义 Docker 镜像,您需要创建一个定义镜像的 Dockerfile。
示例
以下是一个安装 TensorFlow 和 Jupyter 的 Dockerfile 示例。
步骤 1 − 为您的项目创建一个新目录并导航到该目录。
步骤 2 − 在项目目录中创建一个名为“Dockerfile”的文件,内容如下:
FROM python:3.8 RUN pip install tensorflow RUN pip install jupyter
这些命令用于从 Python 3.8 版本安装 TensorFlow 和 Jupyter。
步骤 2 − 要构建镜像,您可以在终端中运行以下命令:
$ docker build -t mytensorflow .
构建此 TensorFlow 镜像需要一段时间。结果将是一个名为“mytensorflow”的镜像。
输出
[+] Building 465.6s (7/7) FINISHED => [internal] load build definition from Dockerfile 0.1s => => transferring dockerfile: 107B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/python:3.8 2.9s => CACHED [1/3] FROM docker.io/library/python:3.8@sha256:3a519327ab069a4e356a8aa279e80b7ef6270e17c5df1493dd0a5b2817 0.0s => [2/3] RUN pip install tensorflow 311.0s => [3/3] RUN pip install jupyter 75.9s => exporting to image 75.4s => => exporting layers 75.3s => => writing image sha256:14ff4caa7e8b3d2fef9e2a911839f682f720873bd35b8402efda52e8c8ff754f 0.0s => => naming to docker.io/library/mytensorflow 0.0s
使用“docker scan”对镜像运行 Snyk 测试以查找漏洞并了解如何修复它们
步骤 3 − 在终端中运行以下命令以使用此镜像启动 Jupyter Notebook 服务器:
$ docker run -it -p 8888:8888 mytensorflow
如果此命令似乎不起作用,请尝试以下命令:
$ docker run -it -p 8888:8888 tensorflow/tensorflow:latest-jupyter
步骤 4 − 如果前一个命令有效,您应该会在终端中看到一个打印的链接,如果使用备用命令,请使用此链接在新窗口中启动 TensorFlow Jupyter Notebook:
https://:8888
结论
在本文中,我们探讨了如何启动 TensorFlow Docker Jupyter Notebook。我们查看了启动 TensorFlow Jupyter Notebook 的三种不同方法,包括使用 TensorFlow Docker 镜像、创建自定义 Docker 镜像和使用 Docker Compose。使用任何这些方法,您都可以轻松设置 TensorFlow Jupyter Notebook 并开始在 Docker 容器中使用 TensorFlow。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP