How to run my python script on docker?

放肆的年华 提交于 2019-12-12 07:12:23

问题


I am trying to run my python script on docker. I tried different ways to do it but not able to run it on docker. My python script is given below:

import os

print ('hello') 

I have already installed docker on my mac. But i want to know how i can make images and then push it to docker after that i wanna pull and run my script on docker itself.


回答1:


Alright, first create a specific project directory for your docker image. For example:

mkdir /home/pi/Desktop/teasr/capturing

Copy your dockerfile and script in there and change the current context to this directory.

cp /home/pi/Desktop/teasr/capturing.py /home/pi/Desktop/teasr/dockerfile /home/pi/Desktop/teasr/capturing/

cd /home/pi/Desktop/teasr/capturing

This is for best practice, as the first thing the docker-engine does on build, is read the whole current context.

Next we'll take a look at your dockerfile. It should look something like this now:

FROM python:latest

WORKDIR /usr/local/bin

COPY capturing.py .

CMD ["capturing.py", "-OPTIONAL_FLAG"]

The next thing you need to do is build it with a smart name. Using dots is generally disencouraged.

docker build -t pulkit/capturing:1.0 .

Next thing is to just run the image like you've done.

docker run -ti --name capturing pulkit/capturing:1.0

The script now get executed inside the container and will probably exit upon completion.

Edit after finding the problem that created the following error:

"standard_init_linux.go:195: exec user process caused "exec format error"

There's a different architecture beneath raspberry pi's (ARM instead of x86_64), which COULD'VE BEEN the problem, but wasn't. If that would've been the problem, a switch of the parent image to FROM armhf/python would've been enough.

Source

BUT! The error kept occurring.

So the solution to this problem is a simple missing Sha-Bang on top of the python script. The first line in the script needs to be #!/usr/bin/env python and that should solve the problem.

Source




回答2:


You need to create a dockerfile in the directory your script is in.

You can take this template:

FROM python:latest

COPY scriptname.py /usr/local/share/

CMD ["scriptname.py", "-flag"]

Then simply execute docker build -t pulkit/scriptname:1.0 . and your image should be created.

Your image should be visible under docker images. If you want to execute it on your local computer, use docker run.

If you want it to upload to the DockerHub, you need to log into the DockerHub with docker login, then upload the image with docker push.




回答3:


Another way to run python script on docker can be:
copy the local python script to docker:

docker cp yourlocalscript.path container_id:/dst_path/ 

container id can be found using:

docker ps 

run the python script on docker:

docker exec -it python /container_script_path.py


来源:https://stackoverflow.com/questions/47202705/how-to-run-my-python-script-on-docker

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!