DevGang
Авторизоваться

Docker: размещение и запуск Python  сценария

В этой статье мы подробно рассмотрим процесс размещения скрипта Python в контейнере Docker.

Что такое контейнер?

Контейнер представляет собой пакет всех требований к системе и программному обеспечению, которые необходимы для запуска приложения. Он состоит из исполняемых файлов времени выполнения, системных настроек, кода и библиотек.

Таким образом, с контейнерами мы можем изменять спецификации, поскольку контейнеры доступны для записи, а затем легко размещать в них приложения.

Размещение скрипта Python в Docker

Разобравшись с контейнерами, пора реализовать сценарий через контейнеры. Тем самым мы гарантируем, что контейнер позаботится обо всех требованиях и хостинге.

Перед развертыванием скрипта давайте разберемся, как размещается приложение в Docker контейнере.

  1. Сначала нам нужно создать Dockerfile. Dockerfile является конфигом, который необходим для создания Docker images. Он содержит все необходимые команды, которые мы обычно выполняем через командную строку для создания образа контейнера.
  2. Создав Dockerfile, нам теперь нужно создать образ поверх Dockerfile. Docker images можно рассматривать как шаблон, который помогает создать контейнер в докер. Он упаковывает приложения и устанавливает серверную среду, что упрощает нам использование среды для размещения приложений в контейнерах удобным способом.
  3. Теперь мы можем запустить изображение, чтобы увидеть вывод скрипта python. Как только образ запускается, создается контейнер со случайным именем.

Теперь приступим к реализации!! Мы будем использовать приведенный ниже сценарий Python для размещения его в контейнере докера.

sample.py
lst = list()
lst = ['Python', 'Machine Learning', 'R Language', 'Bootstrap']
for x in lst:
print(x)

В приведенном выше сценарии мы создали список, а затем выполнили итерацию цикла for для печати элементов списка.

1. Создайте Dockerfile.

Dockerfile:

FROM python:3
ADD sample.py /
CMD [ "python", "./sample.py" ]

Dockerfile предлагает определенные директивы, как показано ниже -

  1. FROM - Эта директива устанавливает базовый образ для последующих инструкций по работе. В этом примере мы установили Python версии 3 в качестве базового изображения. Теперь Dockerfile получит этот базовый образ из Docker Hub, который на самом деле является репозиторием образов с открытым исходным кодом.
  2. ADD - инструкция ADD копирует новые файлы, каталоги или URL-адреса удаленных файлов из <src> и добавляет их в файловую систему изображения по пути <destination>. В нашем случае src = sample.py, и пункт назначения /
  3. CMD - эта директива запускает службы вместе с базовым настраиваемым образом.

2. Создание образа из Dockerfile

После создания Dockerfile нам нужно создать образ поверх файла Docker, используя следующую команду:

docker build -t image-name:tag .

Мы можем предоставить ему любое собственное имя изображения, и тег поможет ему отделиться от других изображений в хабе.

Пример:

docker build -t python-img:5.0 .

Результат:

[+] Building 5.4s (7/7) FINISHED
 => [internal] load build definition from Dockerfile                                                             0.1s 
 => => transferring dockerfile: 31B                                                                              0.0s 
 => [internal] load .dockerignore                                                                                0.1s 
 => => transferring context: 2B                                                                                  0.0s 
 => [internal] load metadata for docker.io/library/python:3                                                      5.0s 
 => [internal] load build context                                                                                0.1s 
 => => transferring context: 31B                                                                                 0.0s 
 => [1/2] FROM docker.io/library/python:3@sha256:b6a9702c4b2f9ceeff807557a63a710ad49ce737ed85c46174a059a299b580  0.0s 
 => CACHED [2/2] ADD sample.py /                                                                                 0.0s 
 => exporting to image                                                                                           0.1s 
 => => exporting layers                                                                                          0.0s 
 => => writing image sha256:8b2da808b361bc5112e2afa087b9eb4e305304bcc53c18925d04fe8003f92975                     0.0s 
 => => naming to docker.io/library/python-img:5.0  

Нам нужно помнить, что образы докеров являются структурами только для чтения и могут работать независимо. С другой стороны, контейнер строится поверх образа, и ему нужно, чтобы образ запускался сам.

3. Запустите образ докера.

Давайте теперь запустим наш созданный образ, чтобы увидеть вывод скрипта python из контейнера на консоли GIT BASH.

docker run python-img:5.0

Результат:

Python
Machine learning
R language
Bootstrap

Мы также можем видеть отражение образа, запущенного в консоли Docker Community Edition, как показано ниже -

Как упоминалось в предыдущем разделе, для вызываемого изображения создается контейнер со случайным именем, как показано ниже:

Мы даже можем создавать контейнеры с настраиваемыми именами и запускать скрипт через контейнер, используя следующую команду:

docker run -it --name container-name image:tag

Пример:

docker run -it --name sample python-img:5.0

Результат:

Python
Machine learning
R language
Bootstrap
Индивидуальный Docker контейнер<br>
Индивидуальный Docker контейнер

Как видно выше, мы видим два контейнера, созданные поверх того же изображения, которое мы создали ранее.

Источник:

#Python #Docker
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

Поделитесь своим опытом, расскажите о новом инструменте, библиотеке или фреймворке. Для этого не обязательно становится постоянным автором.

Попробовать

Оплатив хостинг 25$ в подарок вы получите 100$ на счет

Получить