gpt4 book ai didi

docker - 从另一个Docker容器中运行一个命令行命令并共享文件

转载 作者:行者123 更新时间:2023-12-02 20:22:24 26 4
gpt4 key购买 nike

在主机命令行上运行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上下文中?如何在我用来运行文件下载命令行容器的临时容器中的笔记本容器中挂载目录?

作为问题的第二部分,我还希望能够将 downloads目录中的文件用作在另一个容器中运行的另一个命令行命令的输入,并将结果的副本再次保存在笔记本容器 downloads目录中:
docker run --rm --volume "${PWD}/downloads":/contentmine --tty --interactive psychemedia/contentmine norma --project /contentmine/aardvark -i fulltext.xml -o scholarly.html --transform nlm2html
大概,如果问题的第一部分有快速解决方案,那么对这一部分是否适用相同的解决方案?

最佳答案

我认为您正在寻找的答案包括创建一个命名容器,并将其指定为downloads/的安装点,然后在以后的 session 中使用创建的容器将其安装到任何容器中。

关于docker - 从另一个Docker容器中运行一个命令行命令并共享文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37087866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com