Docker для самых маленьких

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Когда я только начинал работать с Docker, мне было очень сложно разобраться во всём. Но вам не нужно беспокоиться. Я помогу.

Docker — это превосходный инструмент, который просто нельзя игнорировать. Docker используется повсюду!

Итак, я собрал базовые вещи, которые нужно знать о Docker, в одном материале. Гарантирую — всё кратко и лаконично.

Я познакомлю вас с концептами: контейнерами и образами. А затем мы напишем собственный Dockerfile для контейнеризации простого приложения на Python.

Содержание

  • Что такое Docker

  • Docker-образы

  • Создание образа и запуск контейнера

  • Дополнительные команды и заключение

Что такое Docker

Docker — это способ контейнеризации приложений (помещения кода в коробки, которые могут работать самостоятельно). Контейнеры работают и ощущаются как виртуальные машины, но на самом деле виртуальными машинами не являются.

Контейнеры — это коробки в изолированной среде, поэтому они не зависят от устройства, на котором запущены.

Представляйте это так: есть пчела, которой нравится жить только внутри своих сот, и она не сможет работать, если будет жить в любом другом месте. Вы просто помещаете пчелу в коробку, который выглядит и функционирует точно так же, как её любимые соты. Это и есть контейнеризация.

Контейнеры создаются с использованием образов.

Docker-образы

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

Но как создавать эти образы (чтобы потом создавать контейнеры)? Это делается с помощью Dockerfiles.

Всё о Dockerfiles

Dockerfile — это текстовый документ, содержащий все команды, которые пользователь может вызвать в командной строке для сборки образа.

Давайте создадим Dockerfile вместе. 

Для начала скачайте Docker на своё устройство.

После этого напишем простое приложение на Flask и поместим его в контейнер. Вот пример приложения:

Несмотря на свою простоту, приложению много чего потребуется для запуска:

  • Python 3.9.

  • Flask (команда pip install flask).

  • Доступ к port 5000.

Некоторые программы могут запускаться только на определённых операционных системах — например, только на Windows или только на Linux.

Все эти проблемы решаются путем написания простого Dockerfile, который устанавливает для нас Docker-образ.

Итак, нам нужно создать файл с именем Dockerfile (без какого-либо расширения).

Пошаговая инструкция:

  • используйте FROM для использования базового образа ОС с установленным Python;

  • используйте RUN чтобы выполнить pip install flask;

  • используйте COPY для копирования файла app.py в контейнер;

  • используйте CMD для запуска "python app.py", когда контейнер запустится.

Вот и всё!

Создание образа и запуск контейнера

Теперь создайте Docker-образ с помощью команды docker build, а затем запустите образ с помощью команды docker run ..

Вы также можете использовать --tag, чтобы дать образу название и упростить его дальнейший запуск:

docker build --tag flask .
docker run --name flask -p 5000:5000 flask

Здесь --name — это имя запускаемого контейнера (который я назвал flask), а -p назначает порт Docker-контейнера на вашем компьютере, чтобы вы могли видеть своё приложение на localhost. Наконец, flask в названии — это имя образа, который будет запущен.

Дополнительные команды

Вот, в общем-то, и всё.

  • используйте команду docker ps, чтобы получить список запущенных контейнеров;

  • docker ps -a, чтобы получить список всех контейнеров;

  • docker images, чтобы получить список образов;

  • docker --help, чтобы получить список всех команд.

Попробуйте различные команды, они довольно понятные сами по себе. Официальная документация находится здесь.

Источник: https://habr.com/ru/company/quadcode/blog/711862/


Интересные статьи

Интересные статьи

Одноплатники, хорошие и разные, продолжают выходить. Некоторые можно назвать универсальными, другие подходят для решения узкого круга задач. В марте 2022 года появилось несколько моделей, мимо котор...
Привет! Сегодня вспоминаем, чем нас успел порадовать наступивший 2022 за свой первый месяц. Арест нашумевшей группировки REvil, уязвимость в Dark Souls 3, которая может превратить компьютер в кирпич, ...
Мы собираем зависимости для нашего тестового окружения в Docker-образ, что оказалось очень удобно. Но недавно у нас появился разработчик с MacBook M1, и резко встал вопрос о возможности поддержки двух...
Не так давно мы рассказывали об одноплатнике Adafruit Feather RP2040. Всем он хорош, в особенности тем, что в его основе — чип от Raspberry. Получается, что это вроде и «малинка», но во...
Что приходит Вам в голову, когда Вы слышите “низкоуровневое программирование”? Может быть, C++? Непрекращающийся контроль указателей, попытки оптимизации быстродействия, потребляемой памя...