python - 如何在 docker 上运行我的 python 脚本?

标签 python docker dockerfile docker-swarm

enter image description here enter image description here我正在尝试在 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 就足够了。

Source

但是!错误不断发生。

所以这个问题的解决方案是在 python 脚本之上简单地缺少 Sha-Bang。脚本中的第一行需要是 #!/usr/bin/env python 应该可以解决问题。

Source

关于python - 如何在 docker 上运行我的 python 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47202705/

相关文章:

java - Docker 在类路径上找不到资源

docker - 如何从 Dockerfile 中将文件放置到共享卷上?

python - Pandas 根据列的函数选择行

php - 单个网络服务器上的 PyPy + PHP

docker - 如何用 nix 构建一个 docker 容器?

node.js - 如何在扩展 (node.js) docker 图像上添加自定义 CA 证书

python - 如何在模板匹配中使用 cv2.minMaxLoc()

python - “If”语句和来自命令行的一行 Python 脚本

python - 如何在 docker 内的 redis 中进行 set/get 工作?

linux - 难以访问 Docker 的 API