Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不编写完整Dockerfile的情况下运行简单的Python脚本?_Python_Docker_Dockerfile - Fatal编程技术网

如何在不编写完整Dockerfile的情况下运行简单的Python脚本?

如何在不编写完整Dockerfile的情况下运行简单的Python脚本?,python,docker,dockerfile,Python,Docker,Dockerfile,我在Win 10机器上设置了Docker工具箱。我有一些简单的单文件Python脚本,我想在Docker中运行,只是为了学习。 今天开始学习Docker,三天前开始学习Python 我假设我已经正确设置了Docker,我可以运行示例hello world映像。安装过程中没有错误消息 我听从这里的指示, 上面说: 如果只需要运行一个简单的脚本(使用单个文件),可以避免编写完整的Dockerfile。在下面的示例中,假设您将my_script.py存储在/usr/src/widget_app/中,并

我在Win 10机器上设置了Docker工具箱。我有一些简单的单文件Python脚本,我想在Docker中运行,只是为了学习。 今天开始学习Docker,三天前开始学习Python

我假设我已经正确设置了Docker,我可以运行示例hello world映像。安装过程中没有错误消息

我听从这里的指示, 上面说:

如果只需要运行一个简单的脚本(使用单个文件),可以避免编写完整的Dockerfile。在下面的示例中,假设您将my_script.py存储在/usr/src/widget_app/中,并希望将容器命名为my first python script:

如果我键入pwd,它将显示:

/c/Program Files/Docker Toolbox
我要运行的脚本位于此处:

C:\Docker\Python\my_script.py
这是我认为应该起作用的:

docker run -it --rm --name my-first-python-script -v "$PWD":/c/Docker/Python python:3 python my_script.py
无论我如何尝试指定文件目录,都会出现错误:

python: can't open file 'my_script.py': [Errno 2] No such file or directory
当您运行
-v“$PWD”:/c/Docker/Python
时,您的意思是要将当前工作目录链接到容器中的路径
/c/Docker/Python
,这不是您想要做的。您试图做的是将主机上的
C:\Docker\Python\
链接到容器文件夹
/usr/src/widget\u app

此命令将把脚本放入容器路径
/usr/src/widget\u app
,然后运行它:

docker run -it --rm --name my-first-python-script -v /c/Docker/Python:/usr/src/widget_app python:3 python /usr/src/widget_app/my_script.py
当您运行
-v“$PWD”:/c/Docker/Python
时,您的意思是要将当前工作目录链接到容器中的路径
/c/Docker/Python
,这不是您想要做的。您试图做的是将主机上的
C:\Docker\Python\
链接到容器文件夹
/usr/src/widget\u app

此命令将把脚本放入容器路径
/usr/src/widget\u app
,然后运行它:

docker run -it --rm --name my-first-python-script -v /c/Docker/Python:/usr/src/widget_app python:3 python /usr/src/widget_app/my_script.py

容器对
/c/Docker/Python
目录一无所知。您可以随意命名容器中的目录,但还需要一个
-w
选项来设置容器中的当前目录,或者为
python
提供一个绝对(容器端)路径作为脚本参数。(不过,对我来说,这似乎并不是Docker的一种特别有效的使用方式;在主机上使用Python解释器会简单得多,开发人员的体验也会好得多。)@DavidMaze我知道这不是Docker的一个很好的用途,但我想我还是会尝试一下,因为这是教程的一部分。不过我很好奇,这个场景中有没有真实的用例?容器对
/c/Docker/Python
目录一无所知。你可以在容器中随意命名该目录,但你也可以需要一个
-w
选项来设置容器内的当前目录,或者为
python
提供一个绝对(容器端)路径作为脚本参数。(不过,对我来说,这似乎并不是Docker的一种特别有效的使用方式;在主机上使用Python解释器会简单得多,开发人员的体验也会好得多。)@DavidMaze我知道这不是Docker的一个很好的用途,但我想我还是会尝试一下,因为这是教程的一部分。不过我很好奇,这个场景中有没有真实的用例?谢谢!现在可以找到这个文件了,但我得到了一个不同的错误:/usr/local/bin/python:在“/usr/src/my_script.py”和我的python脚本中找不到“main”模块就是简单的打印(“你好世界”),没有使用库。docker run-it--rm--name my python script-v/c/docker/python:/usr/src python:3 python/usr/src/my_script.py docker run-it--rm--name my python script-v/c/docker/python:/usr/src python:3 cat/usr/src/my_script.py?谢谢!文件现在找到了,但我得到了一个不同的错误:/usr/local/bin/python:在“/usr/src/my_script.py”中找不到“main”模块,我的python脚本只是打印(“Hello world”),没有使用库。docker run-it--rm--name my python script-v/c/docker/python:/usr/src python:3 python/usr/src/my_script.py docker run-it--rm--name my python script-v/c/docker/python:/usr/src python:3 cat/usr/src/my_script.py的输出是什么?