Как запустить мой скрипт python на docker?
Я пытаюсь запустить свой скрипт python на docker. Я пробовал разные способы сделать это, но не смог запустить его на docker. Мой скрипт python приведен ниже:
import os
print ('hello')
Я уже установил docker на своем mac. Но я хочу знать, как я могу создавать изображения, а затем толкать его в docker после этого я хочу вытащить и запустить свой сценарий на самом docker.
2 ответов
хорошо, сначала создайте определенный каталог проекта для вашего образа 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"]
следующая вещь вам нужно сделать, это построить его с умным названием. Используя дотс вообще disencouraged.
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"
под малиной другая архитектура pi (ARM вместо x86_64), что могло бы быть проблемой, но не было. Если бы это было проблемой, переключение родительского образа на FROM armhf/python
было бы достаточно.
но! Ошибка продолжалась.
таким образом, решение этой проблемы-это простой отсутствующий Sha-Bang поверх скрипта python. Первая строка в скрипте должна быть #!/usr/bin/env python
и это должно решить проблема.
нужно создать файла Docker в каталоге ваш скрипт в.
вы можете взять этот шаблон:
FROM python:latest
COPY scriptname.py /usr/local/share/
CMD ["scriptname.py", "-flag"]
тогда просто выполните docker build -t pulkit/scriptname:1.0 .
и ваше изображение должно быть создано.
ваше изображение должно быть видно под docker images
. Если вы хотите запустить его на локальном компьютере, используйте docker run
.
если вы хотите загрузить его в DockerHub, вам нужно войти в DockerHub с docker login
, затем загрузите изображение с docker push
.