Docker运行未挂载本地文件夹

时间:2019-02-27 00:15:14

标签: python linux python-2.7 docker ubuntu

我需要使用一个Docker映像,该映像具有某些程序的编译版本,这些程序很难从头开始编译。

我需要在该环境中运行程序。

我安装了docker并提取了映像(john / custom:py2)。

但是我如何使用docker提供给我的环境来运行程序(在docker环境中运行的Python程序),将本地文件夹作为输入发送,并将输出产生回我的本地系统。

到目前为止,所有资源教程都向我展示了如何在docker内部工作,而不是我想要的问题。

感谢我们的帮助。

技术问题是:

docker run -it -v /tmp:/home/ubuntu/myfolder/ john/custom:py2

这使我成为root。但是我在外壳中看不到myfolder的文件夹或文件。

ls命令给出的结果为空

如何在此docker环境中运行可在该文件夹的输入上工作并写入同一文件夹的程序。

2 个答案:

答案 0 :(得分:1)

听起来您已经颠倒了卷语法的顺序。前半部分是主机位置或卷源,而后半部分是装入卷的容器内的目标目录。试试:

docker run -it -v /home/ubuntu/myfolder/:/tmp john/custom:py2

要将myfolder装入容器的/tmp目录中。

答案 1 :(得分:1)

我尝试使用ubuntu容器进行了一些改动,对我有用。

$ docker pull ubuntu
$ docker run -it -v /tmp:/home/ubuntu/myfolder ubuntu:latest
$ ls /home/ubuntu/myfolder

尝试一下,看看它是否对您有用。 我还将尝试将/ tmp以外的其他目录挂载到docker容器中的目录中。例如:

$ mkdir /home/john/foo
$ docker run -it -v /home/john/foo:/home/ubuntu/foo ubuntu:latest

/ tmp有点特殊,我不知道在docker中挂载该目录是否是个好主意。