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

目录

安装Docker

Docker发生意外错误

1. 虚拟机平台

2. 适用于Linux的视窗子系统

3. 在BIOS中启用虚拟化

运行CodeProject.AI服务器Docker镜像

拉取Docker镜像疑难解答

启动Docker容器

Docker与Windows Service

这是怎么回事?


我能够在Windows上成功安装 CodeProject.AI服务器,所以我想看看是否可以让它在Docker中运行。我以前从未使用过Docker,所以我从头开始。

以下是安装Docker的完整演练,然后在Docker中运行CodeProject.AI服务器。

安装Docker

第一步是开始使用 Docker。向下滚动并单击适用于Windows的下载

这将下载 Docker Desktop Installer.exe。双击该文件,安装程序将运行。安装程序完成后,单击关闭并重新启动

计算机完成重新启动后,将启动Docker订阅服务协议。单击接受。在大多数情况下,就是这样。Docker已安装!

Docker发生意外错误

在此阶段,我遇到了如上所示的错误。该错误提供了更多帮助的链接,但实际上对我有帮助的链接是疑难解答主题。虚拟化下,有一个所需内容的列表。

  1. 虚拟机平台
  2. 适用于Linux的Windows子系统
  3. 在BIOS中启用虚拟化
  4. 在Windows启动时启用虚拟机管理程序

1. 虚拟机平台

首先,必须启用虚拟机平台。为此,请转到Windows菜单并开始键入“打开或关闭Windows功能”。这将打开“Windows功能面板。

确保已选中适用于Linux的虚拟机平台和 Windows子系统

2. 适用于Linux的视窗子系统

即使检查了我的Linux子系统,我仍然收到一个错误:

引用:

WSL 2安装不完整。WSL 2 Linux内核现在使用单独的MSI更新包进行安装。请单击链接并按照说明安装内核更新:Manual installation steps for older versions of WSL | Microsoft Learn。请在安装Linux内核后重新启动。

要安装MSI软件包,请按照错误的说明进行操作。转到 Manual installation steps for older versions of WSL | Microsoft Learn,单击用于x64机器的WSL2 Linux内核更新包,下载wsl_update_x64.msi。

双击“wsl_update_x64.msi和Windows子系统进行Linux更新安装”。重新启动计算机。

另一种方法是使用PowerShell。要打开PowerShell终端,请转到Windows菜单并开始键入“PowerShell”。然后启动 Windows PowerShell 应用程序。

然后只需使用以下命令:

wsl --install

3. 在BIOS中启用虚拟化

重新启动计算机时,输入BIOS设置。通常,当计算机从黑屏加载时执行此操作。只需按下魔术按钮即可进入BIOS,实际按钮因机器而异。它是删除EscF1F2 或 F4。对我来说,它是删除或 F2

如果您运行的是Windows 11,则可能需要转到“设置”,然后:

  • 转到系统
  • 选择右侧面板上的恢复卡
  • 高级设置”行上,单击“立即重新启动

然后机器重新启动可能会提供更多的箍来跳过(他们真的不希望您弄乱这些BIOS设置)。

进入BIOS后,您将看到类似于以下内容的内容:

从这里,查找CPU配置。它要么在处理器、芯片组或北桥下。虚拟化要么被称为VT-x,AMD-V,SVM或Vanderpool。我的电脑是一台较旧的华硕机器,所以虚拟化实际上被列为英特尔虚拟化技术,以前被称为范德浦。启用此功能,然后保存更改并退出。

重新启动后,Docker启动并准备就绪!

运行CodeProject.AI服务器Docker镜像

注意:如果您已经将CodeProject.AI服务器安装为Windows服务,则需要先停止它。如果你不这样做,你会得到一个错误,我在DockerWindows服务(本文最后部分)中解决了这个问题:决定你是希望 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,然后右键单击该图标。选择重新启动”。

弹出一条警告消息。图像拉取过程会记住已下载的内容,因此请点击重新启动

然后返回到commant提示符并重新输入您之前键入的pull命令。Docker应该从中断的地方继续,并继续拉取镜像。

启动Docker容器

拉取镜像后,它将出现在Docker桌面中。

要启动容器,请单击播放按钮。然后出现一个对话框,提供可选设置。

为容器命名,将主机端口设置为32168,然后单击运行

转到Docker Desktop中的“容器”选项卡,查看正在运行的容器。

单击端口标题下的链接以打开仪表板。

就是这样!您现在正在从Docker容器中运行CodeProject.AI服务器。

Docker与Windows Service

在CodeProject.AI服务器Docker镜像完成拉取并尝试启动镜像后,它并不是上面显示的一帆风顺。当我启动镜像时,出现此错误:

引用:

docker:来自守护程序的错误响应:端口不可用:暴露端口TCP 0.0.0.0:32168 -> 0.0.0.0:0:侦听 tcp 0.0.0.0:32168:绑定:通常只允许每个套接字地址(协议/网络地址/端口)使用一次。

这是怎么回事?

为了对正在发生的事情进行故障排除,我需要找出哪个进程正在使用端口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服务运行。两者都是可能的,但混乱和不必要的。如果您真的希望同时运行两者,只需选择不同的端口号即可。

https://www.codeproject.com/Articles/5347282/How-to-Run-CodeProject-AI-Server-in-Docker