如何启动 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。