如何启动 TensorFlow Docker Jupyter Notebook?


简介

Jupyter Notebook 对于编写、测试和调试代码很有用。TensorFlow 是一个机器学习框架,可以与 Jupyter Notebook 一起使用。

在本文中,我们将探讨如何使用 Docker 启动 TensorFlow Jupyter Notebook,这将使我们能够利用这两个工具的优势。

先决条件

在开始之前,您需要在您的机器上安装 Docker 和 Docker Compose。您可以使用以下命令检查是否已安装:

$ docker --version 
$ docker-compose --version

您可以按照此处提供的操作系统安装说明进行操作:

https://docs.docker.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://127.0.0.1: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://127.0.0.1:8888

结论

在本文中,我们探讨了如何启动 TensorFlow Docker Jupyter Notebook。我们查看了启动 TensorFlow Jupyter Notebook 的三种不同方法,包括使用 TensorFlow Docker 镜像、创建自定义 Docker 镜像和使用 Docker Compose。使用任何这些方法,您都可以轻松设置 TensorFlow Jupyter Notebook 并开始在 Docker 容器中使用 TensorFlow。

更新于: 2023年1月17日

2K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告