docker 的安装和快速拉取镜像部署 ChatGPT web 服务
前言
最近接到一个任务再内网快速搭建一个内部的 ChatGPT web 端,于是记录一下,我的服务器是 ubuntu。
安装 docker
以下是在 Ubuntu 上安装 Docker 的步骤:
- 更新软件包数据库:
打开终端窗口并更新软件包数据库,确保获取有关可用软件包的最新信息。运行以下命令:
sudo apt update
- 安装必要的依赖项:
Docker 需要一些依赖项。您可以通过运行以下命令来安装它们:
sudo apt install apt-transport-https ca-certificates curl software-properties-common
- 添加 Docker 仓库:
Docker 为 Ubuntu 提供了一个官方仓库。通过运行以下命令添加 Docker 仓库:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- 然后将 Docker 仓库添加到系统:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 再次更新软件包数据库:
运行以下命令,使用新的 Docker 仓库更新软件包数据库:
sudo apt update
- 安装 Docker:
最后,使用以下命令安装 Docker:
sudo apt install docker-ce docker-ce-cli containerd.io
- 启动并启用 Docker:
安装完成后,启动 Docker 服务并启用它以在启动时启动:
sudo systemctl start docker
sudo systemctl enable docker
- 验证 Docker 安装:
您可以通过运行以下命令验证 Docker 是否正确安装:
sudo docker --version
这应该显示已安装的 Docker 版本。
安装 docker-compose
由于我们要部署的镜像需要一些配置项,如果直接拉取部署的话需要指定环境变量,有点麻烦,因此考虑使用 docker-compose。
docker-compose 允许你以简洁、可读性强的 YAML 文件定义和管理多个容器。通过一个文件,你可以轻松地配置应用程序的服务、网络和卷等方面,而不需要手动操作每个容器。使用 docker-compose 可以大大简化和加速应用程序的开发、部署和管理过程。它提供了一种简单而一致的方式来组织和运行多个容器,同时增强了可移植性、可扩展性和一致性,使得应用程序更易于维护和升级。 安装 Docker Compose 是相对简单的过程。您可以按照以下步骤在 Ubuntu 上安装 Docker Compose:
下载 Docker Compose 二进制文件:
打开终端并执行以下命令,下载最新版本的 Docker Compose,你可能需要更换镜像,注意地址是否能正确获取:
bashsudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
添加执行权限:
使用以下命令为下载的二进制文件添加执行权限:
bashsudo chmod +x /usr/local/bin/docker-compose
验证安装:
运行以下命令验证 Docker Compose 是否成功安装:
bashdocker-compose --version
如果安装成功,您将看到 Docker Compose 的版本信息。
- PS:这一步需要注意,可能网络原因,无法访问 GitHub,或者下载不完整不正确的包,会导致启动失败。可以使用国内镜像,不过需要查找对应链接,验证文件是否正确。 比如如果使用了国内镜像下载后,运行后发现如下报错:很可能是第一步下载失败,但是文件也保存了。
ls /usr/local/bin/docker-compose
会发现文件大小和官方的不对的上
shell/usr/local/bin/docker-compose: 1: /usr/local/bin/docker-compose: cannot open
因此,你可能需要重新下载,验证下国内镜像链接是否能正确下载,挂代理,或者手动下载后传到服务器。可以使用
uname -s
查看系统类型,使用uname -m
查看内核版本,然后到 GitHub 的 release 下载对应的文件。- PS:这一步需要注意,可能网络原因,无法访问 GitHub,或者下载不完整不正确的包,会导致启动失败。可以使用国内镜像,不过需要查找对应链接,验证文件是否正确。 比如如果使用了国内镜像下载后,运行后发现如下报错:很可能是第一步下载失败,但是文件也保存了。
现在,您已经在 Ubuntu 上成功安装了 Docker Compose。您可以创建和管理 Docker Compose 项目,如上一条回答中所示。请确保您具有足够的权限运行这些命令(可能需要使用sudo
)。如果您使用普通用户权限,可以将用户添加到docker
组中,以免每次都需要sudo
:
sudo usermod -aG docker $USER
然后注销并重新登录,以使更改生效。
拉取 chatgpt-web 镜像部署
我们使用的是这个镜像
拉取镜像
docker pull chenzhaoyu94/chatgpt-web
你可以直接使用命令行启动镜像,但是我们是想直接通过 docker-compose 根据配置的 yml 文件去启动,这样比较方便 具体可以查看以上链接创建配置文件
docker-compose.yml
,填入自己的密钥,key 等信息yamlversion: "3" services: app: image: chenzhaoyu94/chatgpt-web # 总是使用 latest ,更新时重新 pull 该 tag 镜像即可 ports: - 3002:3002 environment: # 二选一 OPENAI_API_KEY: xxxxxx # 二选一 OPENAI_ACCESS_TOKEN: xxxxxx # API接口地址,可选,设置 OPENAI_API_KEY 时可用 OPENAI_API_BASE_URL: xxxx # API模型,可选,设置 OPENAI_API_KEY 时可用 OPENAI_API_MODEL: xxxx # 反向代理,可选 API_REVERSE_PROXY: xxx # 访问权限密钥,可选 AUTH_SECRET_KEY: xxx # 每小时最大请求次数,可选,默认无限 MAX_REQUEST_PER_HOUR: 0 # 超时,单位毫秒,可选 TIMEOUT_MS: 60000 # Socks代理,可选,和 SOCKS_PROXY_PORT 一起时生效 SOCKS_PROXY_HOST: xxxx # Socks代理端口,可选,和 SOCKS_PROXY_HOST 一起时生效 SOCKS_PROXY_PORT: xxxx
后台运行
需要到配置文件的当前目录下,没有权限的话记得加 sudo
shelldocker-compose up -d
停止服务
shelldocker-compose down