Docker使用说明

安装Docker和Docker-compose

1
2
3
4
5
6
#===== For Ubuntu/Debian =====
# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun  
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

# 启动Docker
systemctl start docker 

安装Docker-compose

1
sudo apt install docker-compose -y 

Docker使用,教程

1
2
3
4
5
# 创建镜像
docker build -t my-website . 

# 运行容器
docker run -d -p 80:80 my-website

Docker安装

官方安装教程CentOS平台安装Docker

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#===== For Ubuntu/Debian =====
curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh
# curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun  
# sudo sh get-docker.sh --mirror AzureChinaCloud
# sudo sh get-docker.sh --mirror Aliyun

#===== For CentOS =====
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io

# 或者按如下方式安装(参考阿里云)
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce

Docker使用说明

构建容器镜像

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 启动Docker
systemctl start docker 

# 查看Docker运行状态 
service docker stats

# 开启Docker
service docker start 

# 构建容器镜像,注意末尾的 `.` 字符
docker build -t image_name . 

# 运行容器
docker run --name App_Name -e OPENAI_API_KEY="sk-*******" -e CODE="00000,11111" -d -p 80:98732 image_name

命令说明:

参数说明
--name App_Name将容器名称设置为App_name
-d让容器在后台运行
-p 80:98732将容器端口98732映射为主机的80端口,即端口的形式为 主机端口:容器端口
-e OPENAI_API_KEY="sk-****"设置容器中的环境变量 OPENAI_API_KEY
image_name镜像名称,镜像名可以添加Tag(默认为latest),如image_name:tag

Docker 用法

Docker详解

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 查看docker状态 
docker stats 

# 查看容器网络连接
docker network ls 


# 查看容器镜像列表 
docker image ls -a 
docker image ls | docker images 
docker image ls -f dangling-true 
docker image --filter "dangling=true" 
docker image ls -f dangling-true # list dangling images 

# 删除容器镜像 
docker rmi -f image_id 
docker rmi -f NONE:NODE # REPOSITORY[:TAG]
docker rmi -f $(docker images --filter "dangling=true" -q) # delete dangling images 


# 查看容器运行列表
docker ps 
docker container ls 
docker start CONTAINER_ID
docker stop CONTAINER_ID
docker rm CONTAINER_ID 
docker logs CONTAINER_ID 

# 进入容器环境
docker attach CONTAINER # 退出后容器也停止
docker exec -it CONTAINER bash # 退出后不影响容器

# 删除容器
docker container rm CONTAINER_ID # 删除特定编号停止运行的容器
docker container prune # 删除所有停止运行的容器

Docker-compose使用说明

安装Docker-compose,需要先安装Docker:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
sudo apt install docker-compose -y 

docker-compose up # build container  
docker-compose up -d # run background 
docker-compose -f docker-compose.yml up 

docker-compose build 
docker-compose up --build

docker-compose ps # show status of the current container 
docker-compose start 
docker-compose stop 
docker-compose restart
docker-compose down # delete container 

订阅转换搭建工具

教程

工具说明
sub-convert后端转换工具,docker run -d --restart=always --name subconverter -p 25500:25500 tindy2013/subconverter:latest
sub-web前端转换页面,docker run -d -p 58080:80 --restart always --name subweb careywong/subweb:latest
MyUrls短链接生成,docker run -d --restart always --name myurls careywong/myurls:latest -domain example.com -port 8002 -conn 127.0.0.1:6379 -passwd '' -ttl 90

sub-web和MyUrls也可手动部署

sub-web应先修改好目录下面的/root/sub-web/src/views/Subconverter.vue文件,然后再构建容器。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# 摘取仓库代码 
git clone https://github.com/CareyWang/sub-web.git sub-web 
git clone https://github.com/CareyWang/MyUrls.git MyUrls 

# 构建节点转换前端网页,应先修改好Subconverter.vue文件
docker build -t subweb-local:latest .
docker run -d -p 58080:80 --restart always --name subweb subweb-local:latest 

# 构建MyURls短链接工具,应先修改好.env文件
docker build -t subweb-local:latest . # 构建镜像 
docker run -d -p 58080:80 --restart always --name subweb subweb-local:latest

常用容器构建举例

名称说明
PandoraChatGPT的反代聊天工具,可实现国内的无墙访问,并解除一些功能上的限制
ChatGPT-Next-Web使用OpenAI的API接口搭建的聊天工具,可部署在Vercel、zeabur等免费的容器上,需要设置API_KEY,消耗用户的Token。
gpt_academic多模型GPT学术辅助工具

部署可以通过conda虚拟环境或使用Docker容器进行,建议使用容器部署。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Pandora 
git clone https://github.com/lmzxtek/pandora-cloud-serverless.git 
cd pandora-cloud-serverless 
python3 -m pip install -r requirements.txt 

nohup python3 -u main.py &

# ChatGPT-Next-Web 
docker build -t chatgptnextweb .
docker run --name ChatGPTNextWeb -d -p 3000:3000 -e OPENAI_API_KEY="sk-***" -e CODE="12345" chatgptnextweb 

# gpt_academic 
git clone https://github.com/binary-husky/gpt_academic.git 

docker build -t gptacademic . # 构建镜像
docker run --name GPT-Academic -it -e WEB_PORT=50923 -d -p 50923:50923 gptacademic # 运行容器 
docker run --name gptaca -it \
	-e API_KEY="sk-******" \
	-e AUTHENTICATION='[("qq","12345")]' \
	-e WEB_PORT=50923 \
	-e AUTO_CLEAR_TXT=True \
	-e ADD_WAIFU=True \
	-d -p 50923:50923 \
    gptacademic 

# nohup python3 main.py & 
署名 - 非商业性使用 - 禁止演绎 4.0