我正在尝试在docker上运行我的python脚本.我尝试了不同的方法,但无法在docker上运行它.我的python脚本如下:
import os
print ('hello')
我已经在我的mac上安装了docker.但我想知道如何制作图像,然后将其推送到docker之后,我想在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用户进程导致”exec格式错误“
树莓派(ARM而不是x86_64)下面有一个不同的架构,这可能是问题所在,但事实并非如此.如果那就是问题,那么将父图像切换到FROM armhf / python就足够了.
但!错误不断发生.
因此,解决这个问题的方法是在python脚本之上简单地丢失Sha-Bang.脚本中的第一行需要是#!/usr/bin/env python,这应该可以解决问题.