如何在 Docker 中运行 CodeProject.AI 服务器





5.00/5 (9投票s)
在本文中,我将指导您完成安装 Docker,然后如何在 Docker 中运行 CodeProject.AI 服务器。
快速答案
简而言之
docker run codeproject/ai-server
有关我们支持的各种 Docker 镜像及其各自所需的标志,请参阅 CodeProject.AI 文档。
更长、更有帮助的解释
这为不熟悉 Docker 的用户提供了很多内容,并且仅适用于 x86_64 架构上的 CPU 版本,因此让我们来详细了解一下这实际上意味着什么以及有哪些其他选项。
在之前的文章中,我 在 Windows 上安装了 CodeProject.AI 服务器,所以在本文中我想看看是否可以在 Docker 中运行它。我以前从未使用过 Docker,所以我从零开始。
这是一个完整的教程,涵盖了安装 Docker,然后 在 Docker 中运行 CodeProject.AI 服务器。
安装 Docker
第一步是访问 Docker 入门。向下滚动并点击下载适用于 Windows 的版本。
这将下载 Docker Desktop Installer.exe。双击该文件,安装程序将运行。安装完成后,点击关闭并重启。
计算机重启完成后,将启动 Docker 订阅服务协议。点击接受。在大多数情况下,这就完成了 Docker 的安装!
Docker 出现意外错误
此时,我收到了如上所示的错误。该错误提供了一个获得更多帮助的链接,但真正帮助我的是 疑难解答主题。在虚拟化下,有一份必需项列表。
- 虚拟机平台
- 适用于 Linux 的 Windows 子系统
- BIOS 中已启用虚拟化
- 在 Windows 启动时启用了 Hypervisor
1. 虚拟机平台
首先,必须启用虚拟机平台。为此,请转到 Windows 菜单并开始键入“打开或关闭 Windows 功能”。这将打开Windows 功能面板。
确保选中了虚拟机平台和适用于 Linux 的 Windows 子系统。
2. 适用于 Linux 的 Windows 子系统
尽管我的适用于 Linux 的 Windows 子系统已选中,但我仍然收到错误
引用WSL 2 安装不完整。WSL 2 Linux 内核现在使用单独的 MSI 更新包进行安装。请点击此链接并按照说明安装内核更新:https://aka.ms/wsl2kernel。请在安装 Linux 内核后重启。
要安装 MSI 包,请按照错误的说明进行操作。转到 https://aka.ms/wsl2kernel,点击适用于 x64 计算机的 WSL2 Linux 内核更新包,这将下载 wsl_update_x64.msi。
双击 wsl_update_x64.msi,将安装适用于 Linux 的 Windows 子系统更新。重启计算机。
另一种方法是使用 PowerShell。要打开 PowerShell 终端,请转到 Windows 菜单并开始键入“PowerShell”。然后启动Windows PowerShell应用程序。
然后只需使用命令
wsl --install
3. BIOS 中已启用虚拟化
在计算机重启时,进入 BIOS 设置。通常,您在计算机从黑屏加载时执行此操作。只需按下进入 BIOS 的组合键,实际按键因机器而异。通常是Delete、Esc、F1、F2或F4。对我来说,它是Delete或F2。
如果您运行的是 Windows 11,您可能需要转到设置并
- 转到系统
- 在右侧面板中选择恢复卡
- 在高级启动行点击立即重启
计算机将重新启动,然后可能需要经过更多步骤(他们真的不希望您更改这些 BIOS 设置)。
进入 BIOS 后,您将看到类似以下的内容
从这里开始,查找 CPU 配置。它可能在处理器、芯片组或 Northbridge 下。虚拟化称为 VT-x、AMD-V、SVM 或 Vanderpool。我的计算机是一台较旧的 Asus 机器,因此虚拟化实际上列为Intel Virtualization Technology,以前称为 Vanderpool。将其启用,然后保存更改并退出。
重启后,Docker 将启动并可以使用了!
运行 CodeProject.AI 服务器 Docker 镜像
更好的是:决定您是想将 CodeProject.AI 服务器作为 Windows 服务运行还是作为 Docker 容器运行。您可以同时运行两者,但这没有好处,只会带来麻烦。
第一步是确保 Docker Desktop 正在运行。实际上,您希望确保 Docker 服务正在运行,但 Docker Desktop 会为您处理。
第二步是按 Windows 键并键入 CMD 打开命令提示符。我想运行 CodeProject.AI 服务器的 CPU 版本,所以首先需要拉取镜像
docker pull codeproject/ai-server:latest
要使用支持 GPU 的版本,请使用
docker pull codeproject/ai-server:gpu
然后镜像开始拉取
排查拉取 Docker 镜像问题
安装过程中,Docker 在拉取镜像时卡住了。查看 Docker 论坛,可以通过重启 Docker 来解决此问题。
在系统托盘中找到 Docker,右键单击图标。选择重启。
将弹出一个警告消息。镜像拉取过程会记住已下载的内容,因此请点击重启。
然后回到命令提示符并重新输入您之前输入的拉取命令。Docker 应该会从上次停止的地方继续,并继续拉取镜像。
启动 Docker 容器
镜像拉取完成后,它将显示在 Docker Desktop 中。
要启动容器,请单击播放按钮。然后会出现一个对话框,提供可选设置。
为容器命名,将主机端口设置为 32168,然后点击运行。
转到 Docker Desktop 中的“容器”选项卡,查看正在运行的容器。
点击“端口”标题下的链接以打开仪表板。
就是这样!您现在正在从 Docker 容器中运行 CodeProject.AI 服务器。
Docker 与 Windows 服务
CodeProject.AI 服务器 Docker 镜像拉取完成后,当我尝试启动镜像时,并没有像上面展示的那样顺利。当我启动镜像时,我收到了这个错误
引用docker:守护进程的错误响应:端口不可用:公开端口 TCP 0.0.0.0:32168 -> 0.0.0.0:0:listen tcp 0.0.0.0:32168:bind:通常只允许每个套接字地址(协议/网络地址/端口)使用一次。
发生了什么?
为了排查问题,我需要找出哪个进程在使用端口 32168。我打开了命令提示符并输入
netstat -aon | findstr 32168
从列表中,注意到 TCP [..]32168 [::]:0 LISTENING 10592
。这表明进程 10592 正在使用端口 32168。但是进程 10592 是什么?要查找答案,请在命令提示符中输入
tasklist | findstr 10592
答案:CodeProject.AI Server.exe。如果您想使用相同的端口 32168,则需要先停止 CodeProject.AI 服务器。
如果您没有停止 CodeProject.AI 服务器,请打开命令终端。
开始键入“服务”并启动服务应用程序。向下滚动并查找 CodeProject.AI 服务器,右键单击它,然后选择停止。现在您应该可以正常使用了。
如前所述,您应该决定是希望在 Docker 中运行 CodeProject.AI 服务器还是作为 Windows 服务运行。同时运行两者是可能的,但会很混乱且没有必要。如果您确实希望同时运行两者,只需选择一个不同的端口号即可。