为什么用Docker部署AI应用?
Docker已经成为部署AI应用的首选方案。相比传统部署方式,Docker有以下优势:
- 环境隔离:每个应用独立运行,互不影响
- 一键部署:通过Docker Compose可以一键启动所有服务
- 易于维护:升级和回滚都非常方便
- 资源可控:可以限制CPU和内存使用
准备工作
在开始之前,你需要准备:
- 服务器:推荐2核4G以上配置,Ubuntu 22.04或CentOS 8+
- Docker:安装Docker和Docker Compose
- 域名:如果有域名更好,没有也可以用IP访问
- 基础知识:基本的Linux命令操作
第一步:安装Docker
如果你的服务器还没有安装Docker,可以使用以下命令:
# Ubuntu/Debian
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# 启动Docker
sudo systemctl start docker
sudo systemctl enable docker
# 验证安装
docker --version
执行成功后会显示Docker版本信息,表示安装完成。
第二步:编写Dockerfile
创建一个Dockerfile来定义你的AI应用镜像:
FROM python:3.11-slim
WORKDIR /app
# 安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 复制应用代码
COPY . .
# 暴露端口
EXPOSE 8000
# 启动命令
CMD ["python", "app.py"]
这个Dockerfile会创建一个Python 3.11环境,安装依赖并运行你的AI应用。
第三步:编写Docker Compose
创建docker-compose.yml文件来管理多个服务:
version: '3.8'
services:
ai-app:
build: .
ports:
- "8000:8000"
volumes:
- ./data:/app/data
environment:
- API_KEY=your_api_key_here
restart: unless-stopped
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
- redis-data:/data
restart: unless-stopped
volumes:
redis-data:
这个配置定义了两个服务:AI应用和Redis缓存。
第四步:构建和启动
# 构建镜像
docker-compose build
# 启动服务
docker-compose up -d
# 查看运行状态
docker-compose ps
# 查看日志
docker-compose logs -f ai-app
执行docker-compose up -d后,服务会在后台运行。使用docker-compose ps可以查看运行状态。
第五步:配置反向代理
为了让外部可以访问你的AI应用,建议配置Nginx反向代理:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
配置完成后,重启Nginx即可通过域名访问你的AI应用。
常见问题
1. 端口被占用怎么办?
修改docker-compose.yml中的端口映射,比如改为”8001:8000″。
2. 如何更新应用?
docker-compose down
docker-compose build
docker-compose up -d
3. 如何备份数据?
数据卷在./data目录下,直接备份这个目录即可。
4. 内存不足怎么办?
可以在docker-compose.yml中添加内存限制:
services:
ai-app:
mem_limit: 2g
简评
Docker部署AI应用是目前最推荐的方式,它解决了环境依赖、版本冲突等常见问题。如果你是新手,建议先从简单的应用开始,熟悉Docker的基本操作后再尝试复杂的多服务部署。
© 版权声明
THE END















暂无评论内容