Skip to content
文章摘要

docker 的安装和快速拉取镜像部署 ChatGPT web 服务

前言

最近接到一个任务再内网快速搭建一个内部的 ChatGPT web 端,于是记录一下,我的服务器是 ubuntu。

安装 docker

以下是在 Ubuntu 上安装 Docker 的步骤:

  1. 更新软件包数据库:

打开终端窗口并更新软件包数据库,确保获取有关可用软件包的最新信息。运行以下命令:

sudo apt update

  1. 安装必要的依赖项:

Docker 需要一些依赖项。您可以通过运行以下命令来安装它们:

shell
sudo apt install apt-transport-https ca-certificates curl software-properties-common
  1. 添加 Docker 仓库:

Docker 为 Ubuntu 提供了一个官方仓库。通过运行以下命令添加 Docker 仓库:

shell
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  1. 然后将 Docker 仓库添加到系统:
shell
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
  1. 再次更新软件包数据库:

运行以下命令,使用新的 Docker 仓库更新软件包数据库:

sudo apt update

  1. 安装 Docker:

最后,使用以下命令安装 Docker:

sudo apt install docker-ce docker-ce-cli containerd.io

  1. 启动并启用 Docker:

安装完成后,启动 Docker 服务并启用它以在启动时启动:

shell
sudo systemctl start docker
sudo systemctl enable docker
  1. 验证 Docker 安装:

您可以通过运行以下命令验证 Docker 是否正确安装:

sudo docker --version 这应该显示已安装的 Docker 版本。

安装 docker-compose

由于我们要部署的镜像需要一些配置项,如果直接拉取部署的话需要指定环境变量,有点麻烦,因此考虑使用 docker-compose。

docker-compose 允许你以简洁、可读性强的 YAML 文件定义和管理多个容器。通过一个文件,你可以轻松地配置应用程序的服务、网络和卷等方面,而不需要手动操作每个容器。使用 docker-compose 可以大大简化和加速应用程序的开发、部署和管理过程。它提供了一种简单而一致的方式来组织和运行多个容器,同时增强了可移植性、可扩展性和一致性,使得应用程序更易于维护和升级。 安装 Docker Compose 是相对简单的过程。您可以按照以下步骤在 Ubuntu 上安装 Docker Compose:

  1. 下载 Docker Compose 二进制文件:

    打开终端并执行以下命令,下载最新版本的 Docker Compose,你可能需要更换镜像,注意地址是否能正确获取:

    bash
    sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  2. 添加执行权限:

    使用以下命令为下载的二进制文件添加执行权限:

    bash
    sudo chmod +x /usr/local/bin/docker-compose
  3. 验证安装:

    运行以下命令验证 Docker Compose 是否成功安装:

    bash
    docker-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 下载对应的文件。

现在,您已经在 Ubuntu 上成功安装了 Docker Compose。您可以创建和管理 Docker Compose 项目,如上一条回答中所示。请确保您具有足够的权限运行这些命令(可能需要使用sudo)。如果您使用普通用户权限,可以将用户添加到docker组中,以免每次都需要sudo

bash
sudo usermod -aG docker $USER

然后注销并重新登录,以使更改生效。

拉取 chatgpt-web 镜像部署

我们使用的是这个镜像

https://hub.docker.com/r/chenzhaoyu94/chatgpt-web

  1. 拉取镜像 docker pull chenzhaoyu94/chatgpt-web 你可以直接使用命令行启动镜像,但是我们是想直接通过 docker-compose 根据配置的 yml 文件去启动,这样比较方便 具体可以查看以上链接

  2. 创建配置文件docker-compose.yml,填入自己的密钥,key 等信息

    yaml
    version: "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
  3. 后台运行

    需要到配置文件的当前目录下,没有权限的话记得加 sudo

    shell
    docker-compose up -d
  4. 停止服务

    shell
    docker-compose down