使用docker-compose为Jupyter和RStudio实例装载卷

我正在学习Docker,并设法使用 docker-compose 构建映像来创建 RStudio实例 Jupyter Notebook 实例。 虽然我可以登录并从实例创建脚本,但我注意到这些脚本并未“永久”保存,因此无法在主文件夹git show <commit_id> | grep Author /home/rstudio_scripts中找到它们。

我了解到,即使在Docker容器关闭后,为了使在这些实例中创建的脚本/数据“持久”,您也需要挂载卷。

所以我尝试在以下docker-compose.yml中挂载卷并为RStudio和Jupyter创建一个特定的文件夹:

使用docker-compose为Jupyter和RStudio实例装载卷

但是显然有问题,因为文件夹和数据都没有出现。

我的 docker-compose.yml 和RStudio的 Dockerfile 都位于名为 Docker 的文件夹中,该文件夹位于我正在构建映像泊坞窗home/jupyter_scripts

我还希望在Rstudio或Jupyter实例中创建的任何数据都可以被这两个实例读取/写入,但是我不知道之后是否应该使用build -t general_docker .之类的容器。运行。

任何帮助,不胜感激!

编辑1 :让我附上更新后的docker-compose.yml。以下内容使我可以在主目录中创建一个名为 R_and_Jupyter_scripts 的新文件夹,其中包含我的所有脚本,可以在我的Rstudio实例和Jupyter笔记本中访问。但是我希望从Jupyter或RStudio实例创建的任何新脚本在执行“ docker-compose down”后都不会消失。我应该更改 docker-compose.yml 的哪一部分?

chmod 777 ...

编辑2:

我已经编辑了上面的代码以仅在卷中写入绝对路径(请参见下文),但仍然无法满足我的需要。

我已经从RStudio创建了一个文本文件version: "3.5" services: rstudio: environment: - USER=username - PASSWORD=password image: "rocker/tidyverse:latest" build: context: ./ dockerfile: Dockerfile volumes: - $HOME/R_and_Jupyter_scripts:/home/rstudio/r_scripts container_name: rstudio ports: - 8787:8787 jupyter: image: 'jupyter/datascience-notebook:latest' ports: - 8888:8888 volumes: - $HOME/R_and_Jupyter_scripts:/home/jovyan/work container_name: jupyter ,当我执行output.txt时,我希望该文件位于sudo find / -name "output.txt"中 但是它最终位于两个不同的位置,它们看起来像仍在容器本身中的文件夹:

/home/ec2-user/R_and_Jupyter_scripts

/var/lib/docker/overlay2/66513c53c04786298cac012ea032be58d434131ce04e73f75bf63ca1d0e358d6/diff/home/maxence/r_scripts/output.txt

docker-compose.yml:

/var/lib/docker/overlay2/66513c53c04786298cac012ea032be58d434131ce04e73f75bf63ca1d0e358d6/merged/home/maxence/r_scripts/output.txt
syxiaoyongqq 回答:使用docker-compose为Jupyter和RStudio实例装载卷

volume定义在容器内 中创建文件夹。如果要在Docker主机上安装文件夹,则必须提供该主机文件夹的完整路径。仅相对本地文件夹名称是不够的。

您发布的配置使用的是“命名卷”,而不是安装主机卷。它的作用足够接近磁盘映像。当您运行{PROJECT}_Docker时,Docker将引用一个docker volume ls卷。这会将文件夹的内容保存到其他地方,通常只能通过安装在其他Docker容器中才能访问。

如果要托管卷挂载,请删除Compose文件末尾的volumes:部分,并在每个服务定义中添加类似的内容

volumes:
  - /home/ML_Enthousiast/my_project/Docker:/home/rstudio_scripts
本文链接:https://www.f2er.com/3093158.html

大家都在问