Рубрики
Без рубрики

Докерейте приложение Python.

Что такое Docker? Docker – это инструмент, предназначенный для облегчения создания, развертывания и запуска … Tagged с Docker, Python, Devops.

Что такое Docker?

Докер Является ли инструмент, предназначенный для облегчения создания, развертывания и запуска приложений с помощью контейнеров. Контейнеры позволяют разработчику упаковать приложение со всеми нужными частями, такими как библиотеки и другие зависимости, и разверните его как один пакет. При этом благодаря контейнеру разработчик может быть уверен, что приложение будет работать на любой другой машине Linux независимо от любых настроенных настроек, которые могут иметь машину, которые могут иметь отличаться от машины, используемой для записи и тестирования кода.

Разница между Docker и VM.

Таким образом, Docker немного похож на виртуальную машину. Но в отличие от виртуальной машины, вместо того, чтобы создать целую виртуальную операционную систему, Docker позволяет приложениям использовать то же ядро Linux, что и система, на которой они работают, и требует только приложений, которые будут отправлены с вещами, которые не работают на хост-компьютере. Это дает значительное повышение производительности и уменьшает размер приложения.

Docker используется?

Docker – это инструмент, который предназначен для пользы как разработчиков, так и системных администраторов, что делает его частью многих Дежол (разработчики + операции) насадочные инструменты. Для разработчиков это означает, что они могут сосредоточиться на написании кода, не беспокоясь о системе, на которой она в конечном итоге будет работать. Это также позволяет им получить начало главы с использованием одной из тысяч программ, уже предназначенных для запуска в контейнере докера как часть их применения. Для операционного персонала Docker дает гибкость и потенциально снижает количество систем, необходимых из-за его небольшого следа и нижнего накладных расходов.

Некоторые основные терминологии

Docker Image

  • Это файл, состоящий из нескольких слоев, используемых для выполнения кода в контейнере Docker.
  • Они являются набором инструкций, используемых для создания контейнеров докеров.

Контейнер докера

  • Это экземпляр времени выполнения изображения.
  • Позволяет разработчикам упаковать приложения со всеми необходимыми частями, такими как библиотеки и другие зависимости.

Dockerfile

  • Это текстовый документ, который содержит необходимые команды, которые при выполнении помогают собрать образа докера.
  • Docker Image создается с помощью Docker-файла. ### Docker Engine.
  • Программное обеспечение, которое принимает контейнеры, называется Docker Engine.
  • Docker Engine – это клиент-серверное приложение
  • Двигатель Docker имеет 3 Главная компоненты:

    • Сервер : Он несет ответственность за создание и управление докерными изображениями, контейнерами, сетями и объемами на Docker. Он упоминается как процесс демона.
    • Отдых API : Он указывает, как приложения могут взаимодействовать с сервером и инструктируют это, что делать.
    • Клиент : Клиент представляет собой интерфейс командной строки Docker (CLI), который позволяет нам взаимодействовать с Docker, используя команды Docker.

Docker Hub.

  • Docker Hub является официальным онлайн-репозиторием, где вы можете найти другие изображения Docker, которые доступны для использования.
  • Это позволяет легко найти, управлять и делиться контейнерными изображениями с другими.

Установка Docker для разных операционных систем.

Linux.

$ sudo apt установить docker-ce

$ Sudo Systemctl Status Docker

Macos

$ Brew бочка Установить Docker

Окна

Посмотрите это короткое видео, чтобы установить Docker в Windows

Код Python для этого учебника.

import requests
covid=requests.get("https://api.covid19api.com/summary")
data=json.loads(covid.text)
print("worldwide")
latest=data['Global']
print(f"New Confirmed Cases:{latest['NewConfirmed']}")
print("New Deaths:"+str(latest['NewDeaths']))
print("New Recovered Cases:"+str(latest['NewRecovered']))
print("Total Confirmed Cases:"+str(latest['TotalConfirmed']))
print("Total Deaths:"+str(latest['TotalDeaths']))
print("Total Recovered Cases:"+str(latest['TotalRecovered']))
location=''
while location!='Q':
    print("Enter location:(press q to quit)")
    location=input()
    location=location[0:1].upper()+location[1:]
    l=data['Countries']
    country=[z for z in l if z['Country']==location]
    if len(country)==0:
        if location!='Q':
            print("invalid country!")
        continue
    else:
        country=country[0]
        print("New Confirmed Cases:"+str(country['NewConfirmed']))
        print("New Deaths:"+str(country['NewDeaths']))
        print("New Recovered Cases:"+str(country['NewRecovered']))
        print("Total Confirmed Cases:"+str(country['TotalConfirmed']))
        print("Total Deaths:"+str(country['TotalDeaths']))
        print("Total Recovered Cases:"+str(country['TotalRecovered'])

DockerFile для этого учебника.

FROM python:3.8 //base image

ADD covid.py . //adding file into the container or current dir.

RUN pip3 install requests //run in container to install packages

CMD ["python3", "covid.py"] // to initialize the code in container

Создание контейнера.

Docker Build -t CovidApp.

Вывод:

┌──(ssoin01📛test)-[~/test]
└─$ sudo docker build -t covidapp .
[sudo] password for ssoin01: 
Sending build context to Docker daemon  4.096kB
Step 1/5 : FROM python:3
 ---> 5b3b4504ff1f
Step 2/5 : WORKDIR /home/ssoin01/test/
 ---> Using cache
 ---> a2644e5b51ea
Step 3/5 : ADD covid.py .
 ---> Using cache
 ---> 1b9b63e11b0b
Step 4/5 : RUN pip3 install requests
 ---> Using cache
 ---> 49a143792446
Step 5/5 : CMD [ "python3","covid.py" ]
 ---> Using cache
 ---> 460380159a9d
Successfully built 460380159a9d
Successfully tagged covidapp:latest

Эта команда создает контейнер в слоях или последовательность команд, переданных в DockerFile. ” -t «Флаг для предоставления тега или имени в контейнер.

Запуск этого контейнера.

Docker Run -i CovidApp

Вывод:

┌──(ssoin01📛test)-[~/test]
└─$ sudo docker run -i covidapp
worldwide
New Confirmed Cases:206113
New Deaths:4859
New Recovered Cases:287210
Total Confirmed Cases:173053278
Total Deaths:3726347
Total Recovered Cases:111118329
Enter location:(press q to quit)
Australia
New Confirmed Cases:18
New Deaths:0
New Recovered Cases:4
Total Confirmed Cases:30191
Total Deaths:910
Total Recovered Cases:23607
Enter location:(press q to quit)
q

Эта команда запускает контейнер. Флаг «-i» означает интерактивный режим с помощью командной линии для IO.

Некоторые другие команды докера.

Перечислите все беговые контейнеры.

докер PS.

CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS               NAMES
8bf9021e9b9c        covidapp            "python3 covid.py"   25 seconds ago      Up 21 seconds                           elastic_lewin
Перечислите все контейнеры на машине.

Docker Images.

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
covidapp1           latest              460380159a9d        7 hours ago         896MB
covidapp            latest              460380159a9d        7 hours ago         896MB
python              3                   5b3b4504ff1f        13 days ago         886MB
python-covid        latest              818829069116        6 weeks ago         892MB
python              3.8                 02583ab5c95e        8 weeks ago         883MB
ubuntu              latest              26b77e58432b        2 months ago        72.9MB

Удалите контейнер.

Docker RM ID_OR_NAME. Id_or_name.

Вывод

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

Оригинал: “https://dev.to/shivamsoin/dockerize-python-application-4g4i”