我正在尝试在 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 引擎在构建时所做的第一件事就是读取整个当前上下文。
接下来我们将查看您的 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"
树莓派下面有一个不同的架构(ARM 而不是 x86_64),这可能是问题所在,但不是。如果这是问题所在,将父图像切换到 FROM armhf/python
就足够了。
但是!错误不断发生。
所以这个问题的解决方案是在 python 脚本之上简单地缺少 Sha-Bang。脚本中的第一行需要是 #!/usr/bin/env python
应该可以解决问题。
关于python - 如何在 docker 上运行我的 python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47202705/