我需要使用一个Docker映像,该映像具有某些程序的编译版本,这些程序很难从头开始编译。
我需要在该环境中运行程序。
我安装了docker并提取了映像(john / custom:py2)。
但是我如何使用docker提供给我的环境来运行程序(在docker环境中运行的Python程序),将本地文件夹作为输入发送,并将输出产生回我的本地系统。
到目前为止,所有资源教程都向我展示了如何在docker内部工作,而不是我想要的问题。
感谢我们的帮助。
技术问题是:
docker run -it -v /tmp:/home/ubuntu/myfolder/ john/custom:py2
这使我成为root。但是我在外壳中看不到myfolder的文件夹或文件。
即ls
命令给出的结果为空
如何在此docker环境中运行可在该文件夹的输入上工作并写入同一文件夹的程序。
答案 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中挂载该目录是否是个好主意。