【发布时间】:2016-05-07 11:16:41
【问题描述】:
在主机命令行上运行 docker,我可以在下载一组文件的容器中运行命令,并通过共享卷将这些文件共享回主机:
docker run --rm --volume "${PWD}":/contentmine --tty --interactive psychemedia/contentmine getpapers -q aardvark -o /contentmine/aardvark -x
我想做的是能够从使用 docker-compose.yaml 文件创建的 Jupyter 容器中运行相同的命令,该文件的格式为:
notebook:
image: jupyter/notebook
ports:
- "8899:8888"
volumes:
- ./notebooks:/notebooks
- /var/run/docker.sock:/var/run/docker.sock
privileged: true
在 Jupyter 笔记本代码单元中,我尝试运行:
#Make sure docker is available in the Jupyter container
!apt-get update
!apt-get install -y docker.io
!mkdir -p downloads
#Run a download command in another container and share the downloaded files back
! docker run --rm --volume "${PWD}/downloads":/contentmine --tty --interactive psychemedia/contentmine getpapers -q aardvark -o /contentmine/aardvark -x
我可以看到文件在某处下载,但我不知道在哪里?它们是否已下载到 Jupyter 容器外部的 docker VM 上下文中?如何将我的 notebook 容器中的目录挂载到我用来运行文件下载命令行容器的临时容器中?
作为问题的第 2 部分,我还希望能够使用 downloads 目录中的文件作为在另一个容器中运行的另一个命令行命令的输入,并再次将结果的副本保留在notebook 容器downloads 目录:
docker run --rm --volume "${PWD}/downloads":/contentmine --tty --interactive psychemedia/contentmine norma --project /contentmine/aardvark -i fulltext.xml -o scholarly.html --transform nlm2html
大概,如果对问题的第一部分有快速修复,那么同样的修复也适用于这部分?
【问题讨论】:
标签: docker docker-compose jupyter-notebook