[英]How to run my python script on docker?
好的,首先为您的 docker 镜像创建一个特定的项目目录。 例如:
mkdir /home/pi/Desktop/teasr/capturing
将您的 dockerfile 和脚本复制到那里,并将当前上下文更改为此目录。
cp /home/pi/Desktop/teasr/capturing.py /home/pi/Desktop/teasr/dockerfile /home/pi/Desktop/teasr/capturing/
cd /home/pi/Desktop/teasr/capturing
这是最佳实践,因为 docker-engine 在构建时所做的第一件事就是读取整个当前上下文。
接下来,我们将查看您的 dockerfile。 它现在应该是这样的:
FROM python:latest
WORKDIR /usr/local/bin
COPY capturing.py .
CMD ["capturing.py", "-OPTIONAL_FLAG"]
您需要做的下一件事是使用智能名称构建它。 通常不鼓励使用点。
docker build -t pulkit/capturing:1.0 .
下一步就是像你所做的那样运行图像。
docker run -ti --name capturing pulkit/capturing:1.0
该脚本现在在容器内执行,完成后可能会退出。
找到导致以下错误的问题后进行编辑:
"standard_init_linux.go:195: exec user process caused "exec format error"
在 raspberry pi 下有一个不同的架构(ARM 而不是 x86_64),这可能是问题所在,但不是。 如果那是问题所在,那么将父映像切换到FROM armhf/python
就足够了。
但! 错误不断发生。
所以这个问题的解决方案是在python脚本之上简单地缺少Sha-Bang。 脚本中的第一行需要是#!/usr/bin/env python
,这应该可以解决问题。
按照问题标题,如果不想创建 docker 镜像而只想使用标准 python docker 镜像运行脚本,则可以使用以下命令运行
docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:3.7-alpine python script_to_run.py
您需要在脚本所在的目录中创建一个 dockerfile。
你可以拿这个模板:
FROM python:latest
COPY scriptname.py /usr/local/share/
CMD ["scriptname.py", "-flag"]
然后只需执行docker build -t pulkit/scriptname:1.0 .
并且应该创建您的图像。
您的图像应该在docker images
下可见。 如果要在本地计算机上执行它,请使用docker run
。
如果要上传到DockerHub,需要使用docker docker login
DockerHub,然后使用docker docker push
上传镜像。
我在运行 UBUNTU VERSION="14.04.6" 的机器上关注了@samprog(最被接受的)答案。 并且得到"standard_init_linux.go:195: exec user process caused "exec format error"
上面提到的任何解决方案都不适合我。
修改我的Dockerfile后报错如下
来自蟒蛇:最新
复制capture.py ./capturing.py
CMD ["python","capturing.py"]
注意:如果您的脚本导入了一些其他模块,那么您需要按如下方式修改 Dockerfile 中的 COPY 语句 - COPY *.py ./
希望这对其他人有用。
在 docker 上运行 python 脚本的另一种方法是:
将本地python脚本复制到docker:
docker cp yourlocalscript.path container_id:/dst_path/
可以使用以下方法找到容器 ID:
docker ps
在 docker 上运行 python 脚本:
docker exec -it python /container_script_path.py
它非常简单
1- 转到您的 Python 脚本目录并创建一个具有此标题的文件,没有任何扩展名
文件
2-现在打开docker文件并写入您的脚本名称而不是sci.py
( Dockerfile 的内容)
FROM python:slim #i choice slim version you can choose another tag for example python:3
WORKDIR /usr/local/bin
COPY sci.py . #replace you scrip name with sci.py
CMD [ "python", "sci.py" ] #replace you scrip name with sci.py
保存它,现在你应该从这个dockerfile 和脚本 py创建图像文件
然后运行它
3-in path address 文件夹写CMD按回车键:
4-当 cmd 窗口为您打开时,输入:
docker build -t my-python-app . #this create image in docker by this title my-python-app
5- 并找到运行图像:
docker run -it --rm --name my-running-app my-python-app
我最近遇到了这个问题,python2 和 python3 之间的这种依赖关系让我感到困惑。 这是解决方案。
将当前工作目录绑定到运行 python2 和 pip2 的 Docker 容器。
docker pull frolvlad/alpine-python2
alias python2='docker run -it --rm --name python2 -v "$PWD":"$PWD" -w "$PWD" frolvlad/alpine-python2'
一旦你在你的 CMD 中输入 python2 你就会被扔到 Docker 实例中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.