如何在Docker上运行我的Python脚本?
我正试图在docker上运行我的Python脚本。 我尝试了不同的方式来做到这一点,但无法在Docker上运行它。 我的python脚本如下:
import os print ('hello')
我已经在我的Mac上安装了docker。 但是我想知道如何将图像制作成图像,然后将其推送到docker工人,之后我想要在docker工人上运行我的脚本。
好的,首先为你的docker镜像创build一个特定的项目目录。 例如:
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引擎在构build时首先要读取整个当前的上下文。
接下来我们来看看你的dockerfile。 现在应该看起来像这样:
FROM python:latest WORKDIR /usr/local/bin COPY capturing.py . CMD ["capturing.py", "-OPTIONAL_FLAG"]
接下来你需要做的是用一个聪明的名字来构build它。 通常不鼓励使用点。
docker build -t pulkit/capturing:1.0 .
接下来的事情就是像你所做的那样运行图像。
docker run -ti --name capturing pulkit/capturing:1.0
脚本现在在容器内执行,并可能在完成时退出。
find创build以下错误的问题后编辑 :
"standard_init_linux.go:195: exec user process caused "exec format error"
树莓派下面有一个不同的架构(ARM而不是x86_64),这可能是问题,但不是。 如果这是问题,那么将父映像切换到FROM armhf/python
就足够了。
资源
但! 错误不断发生。
所以这个问题的解决scheme是在python脚本之上的一个简单的丢失的Sha-Bang。 脚本中的第一行需要是#!/usr/bin/env python
,并且应该解决这个问题。
资源
您需要在您的脚本所在的目录中创build一个dockerfile。
你可以采取这个模板:
FROM python:latest COPY scriptname.py /usr/local/share/ CMD ["scriptname.py", "-flag"]
然后只需执行docker build -t pulkit/scriptname:1.0 .
和你的形象应该被创build。
在docker images
下,您的图片应该是可见的。 如果你想在本地计算机上执行它,请使用docker run
。
如果您希望将其上传到DockerHub,则需要使用docker docker login
login到DockerHub,然后使用docker docker push
上传图像。