安装 Docker

本文使用阿里云ECS,操作系统为 Debian 12.9

apt-get update
apt-get -y install ca-certificates curl
# 创建`/etc/apt/keyrings`目录,并下载Docker的官方GPG密钥到该目录
install -m 0755 -d /etc/apt/keyrings
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
# 将Docker仓库添加到系统的软件源列表
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] http://mirrors.aliyun.com/docker-ce/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt-get install -y docker-ce docker-ce-cli containerd.io
docker -v
# 启动Docker守护进程并设置开机自启动
# 执行以下命令,启动Docker服务,并设置开机自启动
systemctl start docker
systemctl enable docker
# 执行以下命令,查看Docker是否启动
systemctl status docker

配置 Docker 镜像

vim /etc/docker/daemon.json
# 写入
{

    "registry-mirrors": [

        "此处修改为从上面表格选用地址"

    ]

}

# 重启
systemctl daemon-reload
systemctl restart docker
# 检查是否生效
docker info
# 如果从结果中看到了配置的内容,说明配置成功

参考链接:最新国内可用的Docker镜像加速器地址收集汇总

安装 NextChat

docker pull yidadaa/chatgpt-next-web

docker run -d -p 3000:3000 \
   -e OPENAI_API_KEY=sk-xxxx \
   -e CODE=your-password \
   yidadaa/chatgpt-next-web

添加硅基流动的API

docker run -d -p 3000:3000 \
   -e SILICONFLOW_API_KEY=sk-xxxx \
   -e CODE=your-password \
   yidadaa/chatgpt-next-web

Docker 镜像开机自启动

docker run -d -p 3000:3000 \
   -e SILICONFLOW_API_KEY=sk-xxxx \
   -e CODE=your-password \
   --restart always \
   yidadaa/chatgpt-next-web

只需要添加--restart always即可,如果要取消开启自启动

docker update --restart no <container_name_or_id>

Docker 访问宿主机IP

当有些服务运行在 localhost 时,Docker 是无法直接访问的,因为它处于虚拟机的桥接模式,网络是独立的。此时可以添加 --network=host,直接使用主机的网络,这样它就能访问宿主机的127.0.0.1网络了。

但是有时候会有如下的报错

⨯ Failed to start server  
Error: getaddrinfo ENOTFOUND iZbp1aam54vp93tesvmrwjZ  
at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:107:26) {  
errno: -3008,  
code: 'ENOTFOUND',  
syscall: 'getaddrinfo',  
hostname: 'iZbp1aam54vp93tesvmrwjZ'  
}

说明它无法解析主机的DNS。这个时候我们强制给它指定另一个主机名就行了。

vim /etc/hosts
# add fellow
127.0.0.1 my-valid-hostname

然后再运行

docker run -d --network host \
  -e OPENAI_API_KEY=sk-xxxx \
  -e CODE=your-password \
  --hostname my-valid-hostname \
  yidadaa/chatgpt-next-web

Docker 移除镜像

# 查看镜像
docker images

docker rmi <container_name_or_id>

如果出现错误:
Error response from daemon: conflict: unable to delete xxxxxxx (must be forced) - image is being used by stopped container xxxxxxxx
说明你试图移除的 Docker 镜像目前正被一个停止运行的容器使用。
# 可以强制移除镜像(可能会破坏已停止的容器)
docker rmi -f <container_name_or_id>
# 移除所有停止的容器,然后删除镜像
docker container prune # 这将删除所有处于 "已退出 "状态的容器,从而释放镜像

如果要与 Ollama 集成,可以选择 LobeChat,相关链接:
与 Ollama 集成

在 LobeChat 中使用 Ollama

标签: none

评论已关闭