1.安装docker
运行以下命令安装docker并查看docker版本,确认docker是否安装成功。
#以root运行就不需要写sudo
sudo apt-get update
sudo apt-get install -y docker.io
sudo systemctl start docker
sudo systemctl enable docker
docker --version
2.准备应用,编写docker环境
2.1 新建文件夹,将准备好Streamlit 应用代码
ndsri_ai_calculator_optimized.py放入文件夹内,并在文件夹内新建Dockerfile和requirements.txt。
project_folder/
│
├── ndsri_ai_calculator_optimized.py
├── Dockerfile
└── requirements.txt
2.2根据Streamlit环境编写Dockerfile和requirements.txt
2.2.2Dockerfile
# 使用官方Python基础镜像(基于Debian)
FROM python:3.12-slim
# 设置工作目录
WORKDIR /project
# 复制应用代码到容器中
COPY your_app.py .
COPY requirements.txt .
# 安装系统依赖(RDKit和绘图功能需要)
RUN apt-get update && apt-get install -y \
build-essential \
libopenblas-dev \
libxrender1 \
libxext6 \
libfontconfig1 \
libcairo2 \
&& rm -rf /var/lib/apt/lists/*
# 安装Python依赖
RUN pip install --no-cache-dir -r requirements.txt
# 暴露Streamlit默认端口
EXPOSE 8501
# 运行Streamlit应用
CMD ["streamlit", "run", "your_app.py", "--server.port=8501", "--server.address=0.0.0.0"]
注:RDKit所需包名及作用,不加运行代码时会出错
包名 | 主要作用 | 在RDKit中的应用场景 | 未来可能扩展用途 |
---|---|---|---|
build-essential | C/C++编译工具链 | 编译RDKit源码 | 优化、自定义模块开发 |
libopenblas-dev | 高效矩阵运算库 | 分子力场、3D构象计算 | 大规模特征计算、机器学习 |
libxrender1 | 2D图形渲染加速 | 分子图绘制 | Web服务分子展示 |
libxext6 | X11图形扩展支持 | 分子图生成 | 无头服务器绘图 |
libfontconfig1 | 字体管理 | 元素符号标注 | 高质量分子图输出 |
libcairo2 | 2D图形绘制库 | 生成PNG、SVG、PDF分子图 | 自动化图像生成、报告制作 |
2.2.3 requirements.txt
内容为代码中需使用的包及版本
streamlit==1.44.0
rdkit==2024.9.6
pandas==2.2.3
numpy==1.26.4
注:pandas依赖于numpy,不装numpy会报错。
3.构建 Docker 镜像
构建docker
docker build -t your_app .
运行容器
docker images #列出本地镜像,用于检查镜像是否正确建立
docker run -d -p 8501:8501 your_app #运行docker镜像,确认能否正常
4.上传docker
4.1 新建docker账户
进入https://hub.docker.com/新建账户并验证邮箱
4.2上传docker
#1.输入账户名和密码登录Docker Hub
docker login
#2.为镜像打标签,yourusername为Docker Hub的用户名
docker tag your_app:latest yourusername/your_app:latest
#3.将镜像推送到Docker Hub
docker push yourusername/your_app:latest
发表回复