使用docker在jupyter中管理包和卷的最佳实践

使用docker在jupyter中管理包和卷的最佳实践,docker,docker-compose,jupyter-notebook,anaconda,jupyter-lab,Docker,Docker Compose,Jupyter Notebook,Anaconda,Jupyter Lab,我正试图用docker上的jupyter/datascience笔记本创建一个项目模板,但我对以下内容感到困惑: 我必须为每个项目创建一个容器(我使用docker compose) 在我的项目模板中,使用Dockerfile和docker-compose.yml文件,我有一个名为“笔记本”的文件夹,我将其安装在/home/jovyan上,以便在停止容器时保存数据,但我也找到了一些缓存文件,这是最佳做法吗 如何管理软件包?我必须在jupyter笔记本上写下类似“!pip install xxx

我正试图用docker上的jupyter/datascience笔记本创建一个项目模板,但我对以下内容感到困惑:

  • 我必须为每个项目创建一个容器(我使用docker compose)

  • 在我的项目模板中,使用Dockerfile和docker-compose.yml文件,我有一个名为“笔记本”的文件夹,我将其安装在/home/jovyan上,以便在停止容器时保存数据,但我也找到了一些缓存文件,这是最佳做法吗

  • 如何管理软件包?我必须在jupyter笔记本上写下类似“!pip install xxxx”,或者在Dockerfile中写下“RUN pip install xxxx”和“pip install”或“conda install”?这两种环境都是从jupyter认可的?如果我有“requirements.txt”,我可以为pip创建一个“requirements.pip.txt”,为conda创建一个“requirements.conda.txt”吗?嗯。。。。。一些最佳实践

  • Dockerfile:

    FROM jupyter/datascience-notebook:latest
    EXPOSE 8888
    ENV JUPYTERLAB_ENABLED=true
    
    docker-compose.yml:

    version: "3.8"
    services:
      jupyter:
        build: .
        ports:
          - 8888:8888
        container_name: jupyter
        volumes:
          - ./notebooks:/home/jovyan
    
    这是我现在的项目 [1] :

  • 除非需要使用冲突的模块,否则不太可能需要制作多个容器

  • 装载到不同的目录,例如
    /home/jovyan/notebooks
    ,并在jupyter配置中将其设置为您的工作目录。这可能很棘手,您可能想克隆我的docker compose以进行简单的设置:只需编辑docker文件并将
    minimal
    替换为
    datascience
    ,即可设置所需的设置

  • 最好装载
    requirements.txt
    和您需要的python包列表。再次参考我的docker compose,了解如何以正确的方式进行操作


  • 非常肯定jupyter stacks github repo回答了您关于需求文件的问题,但是它们不应该在笔记本中,除非您希望在每次重新启动容器时重新下载它们