如何使用 docker desktop enable model-runner 命令管理 Model Runner 设置

DockerDockerBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,你将学习如何在 Docker Desktop 中使用 model-runner 命令管理 Docker Model Runner 设置。我们将涵盖以下内容:启用 Docker 守护进程监听默认 TCP 端口、配置其监听自定义 TCP 端口,以及最终禁用 Docker Model Runner 的 TCP 连接。

通过动手实践,你将修改 Docker 守护进程配置文件 (daemon.json) 来控制守护进程监听的网络接口,重启 Docker 服务以应用更改,并理解启用或禁用 TCP 连接对远程访问和安全性的影响。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/SystemManagementGroup(["System Management"]) docker/ContainerOperationsGroup -.-> docker/ls("List Containers") docker/ContainerOperationsGroup -.-> docker/restart("Restart Container") docker/SystemManagementGroup -.-> docker/system("Manage Docker") subgraph Lab Skills docker/ls -.-> lab-555140{{"如何使用 docker desktop enable model-runner 命令管理 Model Runner 设置"}} docker/restart -.-> lab-555140{{"如何使用 docker desktop enable model-runner 命令管理 Model Runner 设置"}} docker/system -.-> lab-555140{{"如何使用 docker desktop enable model-runner 命令管理 Model Runner 设置"}} end

启用 Docker Model Runner 默认 TCP 端口

在本步骤中,我们将学习如何配置 Docker 守护进程监听默认 TCP 端口。默认情况下,Docker 守护进程通过 Unix 套接字进行通信,这种方式对本地访问更安全。但在需要远程访问或特定使用场景时,启用 TCP 连接是必要的。

要启用 Docker 守护进程监听 TCP 端口,我们需要修改其配置文件。Docker 的主配置文件通常位于 /etc/docker/daemon.json。如果该文件不存在,你可以新建它。

首先,我们检查 daemon.json 文件是否存在。可以使用 ls 命令进行检查:

ls /etc/docker/daemon.json

如果文件存在,命令会输出其路径。如果不存在,你将看到提示文件或目录不存在的错误信息。

接下来,我们将使用 nano 编辑器编辑或创建 /etc/docker/daemon.json 文件。我们需要添加或修改 hosts 键值来包含 TCP 地址和端口。Docker 的默认 TCP 端口是 2375(未加密)或 2376(TLS 加密)。为简化操作,本步骤将使用未加密的 2375 端口。

使用 nano 打开文件:

sudo nano /etc/docker/daemon.json

如果文件为空或不存在,添加以下内容。如果文件已有内容,则添加或修改 hosts 键值来包含 "tcp://0.0.0.0:2375"unix:///var/run/docker.sock 条目确保守护进程仍会监听默认的 Unix 套接字。

{
  "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}

添加或修改内容后,按 Ctrl + X 保存文件,然后按 Y 确认,最后按 Enter 写入文件名。

要使更改生效,需要重启 Docker 服务。我们可以使用 systemctl 命令来完成:

sudo systemctl restart docker

重启 Docker 服务后,你可以使用 ss 命令检查监听端口,验证是否成功监听 TCP 端口。我们将查找监听 2375 端口的进程:

sudo ss -tuln | grep 2375

如果 Docker 守护进程成功监听了 2375 端口,你应该会看到类似以下的输出,表明有进程正在监听该端口:

tcp   LISTEN 0      4096   0.0.0.0:2375      0.0.0.0:*

这确认了 Docker 守护进程现在可以通过 TCP 端口 2375 进行访问。

配置 Docker Model Runner 使用自定义 TCP 端口

在上一步中,我们启用了 Docker 守护进程监听默认 TCP 端口 2375。本步骤将学习如何配置 Docker 守护进程监听自定义 TCP 端口而非默认端口。这种配置有助于提升安全性或避免端口冲突。

我们将再次修改 /etc/docker/daemon.json 文件,将 TCP 端口从 2375 更改为自定义端口(例如 2376)。

使用 nano 编辑器打开 daemon.json 文件:

sudo nano /etc/docker/daemon.json

修改 hosts 键值,将 TCP 端口从 2375 改为 2376。文件内容应如下所示:

{
  "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2376"]
}

Ctrl + X 保存文件,然后按 Y 确认,最后按 Enter 写入文件名。

修改配置后,需要重启 Docker 服务使更改生效:

sudo systemctl restart docker

现在验证 Docker 守护进程是否已在新端口 2376 上监听,且不再监听默认端口 2375。我们可以再次使用 ss 命令。

首先检查 2376 端口:

sudo ss -tuln | grep 2376

你应该会看到类似输出,表明进程正在监听 2376 端口:

tcp   LISTEN 0      4096   0.0.0.0:2376      0.0.0.0:*

接着确认是否已停止监听 2375 端口:

sudo ss -tuln | grep 2375

该命令不应产生任何输出,表明 Docker 守护进程已不再监听 2375 端口。

这证明我们已成功配置 Docker 守护进程监听自定义 TCP 端口。

禁用 Docker Model Runner 的 TCP 连接

在前面的步骤中,我们先后启用了 Docker 守护进程监听默认和自定义 TCP 端口。虽然启用 TCP 连接有助于远程访问,但在不需要时禁用它并仅使用默认 Unix 套接字进行本地通信通常是更安全的选择。

本步骤将学习如何通过移除配置文件中的 TCP 主机条目来禁用 Docker 守护进程的 TCP 连接。

我们将再次使用 nano 编辑器修改 /etc/docker/daemon.json 文件。

打开 daemon.json 文件:

sudo nano /etc/docker/daemon.json

修改 hosts 键值,移除 TCP 条目(根据前一步骤可能是 "tcp://0.0.0.0:2376""tcp://0.0.0.0:2375")。文件内容现在应仅包含 Unix 套接字条目:

{
  "hosts": ["unix:///var/run/docker.sock"]
}

Ctrl + X 保存文件,然后按 Y 确认,最后按 Enter 写入文件名。

修改配置后,需要重启 Docker 服务使更改生效:

sudo systemctl restart docker

现在验证 Docker 守护进程是否已停止监听所有 TCP 端口。我们可以使用 ss 命令检查 2375 和 2376 端口。

检查 2375 端口:

sudo ss -tuln | grep 2375

该命令不应产生任何输出。

检查 2376 端口:

sudo ss -tuln | grep 2376

该命令同样不应产生任何输出。

这证明我们已成功禁用 Docker 守护进程的 TCP 连接。守护进程现在仅能通过默认 Unix 套接字访问,这是本地访问更安全的默认配置。

总结

在本实验中,我们学习了如何通过启用和禁用 Docker 守护进程的 TCP 连接来管理 Docker Model Runner 的设置。我们首先通过修改 /etc/docker/daemon.json 配置文件,在 hosts 数组中添加 "tcp://0.0.0.0:2375" 并重启 Docker 服务,使 Docker 守护进程监听默认 TCP 端口 2375。

本实验还涵盖了如何使用自定义 TCP 端口启用 Docker 守护进程,以及如何通过从 daemon.json 文件的 hosts 数组中移除 TCP 条目并重启 Docker 服务来完全禁用 TCP 连接。这些步骤展示了如何根据不同使用场景配置 Docker 的网络可访问性。