Что такое 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”