Files
vinatools/docker/README.md
2025-10-15 20:14:12 +08:00

202 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Docker 环境使用说明
## 快速开始
### 1. 环境变量配置
```bash
# 复制环境变量模板
cp docker/docker.env.example docker/.env
# 编辑环境变量
vim docker/.env
```
### 2. 构建镜像
```bash
# 使用默认配置构建
docker-compose -f docker/docker-compose.yml build
# 使用环境变量构建
docker-compose -f docker/docker-compose.yml --env-file docker/.env build
# 或者直接使用 docker build
docker build -f docker/Dockerfile -t vinatools:latest .
```
### 3. 环境变量说明
| 变量名 | 默认值 | 说明 |
|--------|--------|------|
| `VINA_VERSION` | `1.2.7` | AutoDock Vina 版本 |
| `VINA_PLATFORM` | `mac_aarch64` | 平台架构 |
| `DOWNLOAD_VINA` | `true` | 是否下载 AutoDock Vina |
**支持的平台:**
- `mac_aarch64` - Apple Silicon Mac
- `mac_x86_64` - Intel Mac
- `linux_x86_64` - Linux x86_64
- `windows_x86_64` - Windows x86_64
### 4. 运行容器
```bash
# 启动主服务
docker-compose -f docker/docker-compose.yml up -d vinatools
# 进入容器
docker-compose -f docker/docker-compose.yml exec vinatools bash
# 或者直接运行
docker run -it --rm -v $(pwd):/app vinatools:latest bash
```
## 使用示例
### 不同平台构建
```bash
# Linux x86_64 平台
VINA_PLATFORM=linux_x86_64 docker-compose -f docker/docker-compose.yml build
VINA_PLATFORM=linux_aarch64 docker-compose -f docker/docker-compose.yml build
# Intel Mac 平台
VINA_PLATFORM=mac_x86_64 docker-compose -f docker/docker-compose.yml build
# 不下载 AutoDock Vina
DOWNLOAD_VINA=false docker-compose -f docker/docker-compose.yml build
```
### 使用环境文件
```bash
# 创建自定义环境文件
cat > docker/my.env << EOF
VINA_VERSION=1.2.6
VINA_PLATFORM=linux_x86_64
DOWNLOAD_VINA=true
EOF
# 使用自定义环境文件构建
docker-compose -f docker/docker-compose.yml --env-file docker/my.env build
```
### 3. 使用 Jupyter Notebook
```bash
# 启动 Jupyter 服务
docker-compose -f docker/docker-compose.yml up -d jupyter
# 访问 http://localhost:8888
```
## 环境说明
### 镜像源配置
为了加速构建过程Dockerfile 中配置了以下镜像源:
- **APT 源**: 阿里云镜像 (mirrors.aliyun.com)
- **pip 源**: 清华大学镜像 (pypi.tuna.tsinghua.edu.cn)
- **conda 源**: 清华大学镜像 (mirrors.tuna.tsinghua.edu.cn)
### 包含的包
- **rdkit**: 化学信息学工具包
- **openbabel**: 分子格式转换工具
- **meeko**: 分子准备工具
- **AutoDock Vina**: 分子对接工具
### 目录结构
```
/app/
├── bin/ # AutoDock Vina 二进制文件
├── scripts/ # Python 脚本
├── data/ # 输入数据(挂载)
└── results/ # 输出结果(挂载)
```
## 常用命令
### 运行脚本
```bash
# 在容器中运行 Python 脚本
pixi run python scripts/calculate_qed_values.py
# 运行批处理脚本
pixi run bash scripts/batch_docking.sh
```
### 数据管理
```bash
# 挂载数据目录
docker run -it --rm \
-v $(pwd)/data:/app/data \
-v $(pwd)/results:/app/results \
vinatools:latest bash
```
### 清理
```bash
# 停止所有服务
docker-compose -f docker/docker-compose.yml down
# 删除镜像
docker rmi vinatools:latest
# 清理未使用的资源
docker system prune -a
```
## 故障排除
### 网络连接问题
如果遇到网络连接问题,可以尝试以下解决方案:
```bash
# 1. 使用代理构建
docker build --build-arg HTTP_PROXY=http://proxy:port \
--build-arg HTTPS_PROXY=http://proxy:port \
-f docker/Dockerfile -t vinatools:latest .
# 2. 使用不同的镜像源
# 编辑 Dockerfile替换镜像源
# - APT: mirrors.ustc.edu.cn (中科大)
# - pip: pypi.douban.com (豆瓣)
# - conda: mirrors.ustc.edu.cn/anaconda/cloud/
# 3. 离线构建(如果网络完全不可用)
# 预先下载所有依赖包,然后使用本地构建
```
### 权限问题
```bash
# 修复文件权限
sudo chown -R $USER:$USER data/ results/
```
### 内存不足
```bash
# 增加 Docker 内存限制
docker run -it --rm --memory=8g vinatools:latest bash
```
### 网络问题
```bash
# 使用主机网络
docker run -it --rm --network=host vinatools:latest bash
```
### 镜像源切换
如果需要使用其他镜像源,可以修改 Dockerfile 中的配置:
```dockerfile
# APT 源切换
RUN sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list
# pip 源切换
RUN echo "index-url = https://pypi.douban.com/simple" > /root/.pip/pip.conf
# conda 源切换
RUN /root/.pixi/bin/pixi config set channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
```