如何在不编写完整Dockerfile的情况下运行简单的Python脚本?
我在Win 10机器上设置了Docker工具箱。我有一些简单的单文件Python脚本,我想在Docker中运行,只是为了学习。 今天开始学习Docker,三天前开始学习Python 我假设我已经正确设置了Docker,我可以运行示例hello world映像。安装过程中没有错误消息 我听从这里的指示, 上面说: 如果只需要运行一个简单的脚本(使用单个文件),可以避免编写完整的Dockerfile。在下面的示例中,假设您将my_script.py存储在/usr/src/widget_app/中,并希望将容器命名为my first python script: 如果我键入pwd,它将显示:如何在不编写完整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/中,并
/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的输出是什么?