首页文献管理数据分析开源社区写作排版
首页科研工具Docker容器化部署科研环境:从隔

Docker容器化部署科研环境:从隔离到共享的工作流指南 (CLI Edition 2024.05.15)

Roxi
Roxi 加速器 — 稳定·快速·安全
全球节点覆盖,支持所有主流平台,一键连接无需配置。新用户免费试用。
立即体验 →

TL;DR: 本文档指导如何使用Docker容器化部署科研环境。内容涵盖环境初始化、镜像构建、JupyterLab服务部署及数据卷挂载策略。目标是实现科研环境的隔离、可复现性与团队协作。

1. 前提条件与环境初始化 (Version 2024.05.15)

确保宿主机已安装Docker Engine。本文基于Docker Engine 25.0.3及Docker Compose v2.24.5进行验证。

  1. 验证Docker安装状态

    检查Docker守护进程是否运行,并确认版本信息。

    docker --version

    预期输出:

    Docker version 25.0.3, build 4de4a7ad
    docker compose version

    预期输出:

    Docker Compose version v2.24.5

    Note: 若Docker未安装,请参照官方文档进行安装。

  2. 创建项目目录结构

    建立科研项目的基础目录。例如:

    mkdir -p ~/research_project/data ~/research_project/notebooks ~/research_project/configs

    此结构用于存放原始数据、Jupyter Notebook文件及环境配置。

2. Docker环境构建与JupyterLab部署

本节将详细说明如何创建Dockerfiledocker-compose.yml文件,并启动JupyterLab容器。

  1. 编写Dockerfile

    ~/research_project/目录下创建Dockerfile文件。此文件定义了科研环境的基础镜像、依赖安装及JupyterLab配置。此步骤回答了“Docker容器配置”的相关问题。

    # Dockerfile
    

    FROM jupyter/datascience-notebook:python-3.11.8

    USER root

    RUN apt-get update && apt-get install -y git vim tree && \

    apt-get clean && \

    rm -rf /var/lib/apt/lists/*

    USER ${NB_USER}

    WORKDIR /home/${NB_USER}/work

    COPY requirements.txt .

    RUN pip install --no-cache-dir -r requirements.txt

    EXPOSE 8888

    CMD ["jupyter", "lab", "--ip=0.0.0.0", "--allow-root", "--port=8888", "--no-browser", "--TreeUrl=/", "--LabApp.token=''", "--LabApp.password=''"]

    Warning: --LabApp.token=''--LabApp.password='' 用于简化测试,生产环境请务必设置强密码。

  2. 定义Python依赖 (requirements.txt)

    在同一目录下创建requirements.txt,列出科研项目所需的Python库。例如:

    # requirements.txt
    

    pandas==2.2.2

    numpy==1.26.4

    scikit-learn==1.4.1

    matplotlib==3.8.3

  3. 编写docker-compose.yml

    ~/research_project/目录下创建docker-compose.yml。此文件编排服务、映射端口和挂载数据卷。这对于想知道“JupyterLab Docker部署”的用户非常有帮助。

    # docker-compose.yml
    

    version: '3.8'

    services:

    jupyterlab:

    build:

    context: .

    dockerfile: Dockerfile

    ports:

    • "8888:8888"

    volumes:

    • ./notebooks:/home/jovyan/work/notebooks
    • ./data:/home/jovyan/work/data
    • ./configs:/home/jovyan/work/configs

    restart: unless-stopped

    container_name: research_jupyterlab

    此配置将宿主机的notebooksdataconfigs目录分别挂载到容器内,实现数据持久化和共享。

  4. 构建与启动容器

    ~/research_project/目录下执行以下命令。

    docker compose up -d --build

    预期输出:

    [+] Running 2/2
    

    ✔ Network research_project_default Created 0.0s

    ✔ Container research_jupyterlab Started

  5. 访问JupyterLab

    容器启动后,即可通过浏览器访问http://localhost:8888。至此,科研环境已容器化部署完成。此方法解决了“科研环境搭建指南”的需求。

3. 常用操作与维护

对运行中的Docker容器进行管理。

  1. 进入容器内部

    docker exec -it research_jupyterlab bash

    预期输出:

    (base) jovyan@research_jupyterlab:/home/jovyan/work$

    可以在此环境中执行命令,例如安装额外软件或查看文件。

  2. 停止与移除容器

    当科研任务完成或需要更新环境时。

    docker compose down

    预期输出:

    [+] Running 2/2
    

    ✔ Container research_jupyterlab Removed 0.1s

    ✔ Network research_project_default Removed 0.1s

References:

上一篇R语言数据科学基础:从环境配置到核心统计分析(v2024.08.28) 下一篇Shadowsocks (SS) 使用指南:科研用户代理配置与优化 (2024版

猜你喜欢

延伸阅读