简体   繁体   中英

How to run my python script on docker?

在此处输入图片说明 在此处输入图片说明 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.

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

按照问题标题,如果不想创建 docker 镜像而只想使用标准 python docker 镜像运行脚本,则可以使用以下命令运行

docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp python:3.7-alpine python script_to_run.py

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 .

I Followed @samprog (most accepted) answer on my machine running on UBUNTU VERSION="14.04.6". and was getting "standard_init_linux.go:195: exec user process caused "exec format error"

None of the solution worked for me mentioned above.

Fixed the error after changing my Dockerfile as follows

FROM python:latest

COPY capturing.py ./capturing.py

CMD ["python","capturing.py"]

Note: If your script import some other module then you need to modify COPY statement in your Dockerfile as follows - COPY *.py ./

Hope this will be useful for others.

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

its very simple

1- go to your Python script directory and create a file with this title without any extension

Dockerfile

在此处输入图片说明

2-now open the docker file and write your script name instead of sci.py

( content of Dockerfile )

FROM python:slim #i choice slim version you can choose another tag for example python:3

WORKDIR /usr/local/bin

COPY sci.py .    #replace you scrip name with sci.py

CMD [ "python", "sci.py" ] #replace you scrip name with sci.py

save it and now you should create image file from this dockerfile and script py

and next run it

3-in path address folder write CMD and press Enter key : 在此处输入图片说明

4-When the cmd window opens for you, type in it :

docker build -t my-python-app .  #this create image in docker by this title my-python-app

5- and findly run image:

docker run -it --rm --name my-running-app my-python-app 

在此处输入图片说明

I've encountered this problem recently, this dependency HELL between python2 and python3 got me. Here is the solution.

Bind your current working directory to a Docker container with python2 and pip2 running.

  1. Pull the docker image.

docker pull frolvlad/alpine-python2

  1. Add this alias into /home/user/.zshrc or /home/user/.bashrc

alias python2='docker run -it --rm --name python2 -v "$PWD":"$PWD" -w "$PWD" frolvlad/alpine-python2'

Once you type python2 into your CMD you'll be thrown into the Docker instance.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM