Гайд [Docker] Что это и с чем его едят? | Урок #1

nelit.dev

Участник
Автор темы
70
37
Доброго времени суток!

Решил сделать серию гайдов по Docker, где мы установим его, научимся писать Dockerfile и разберём, что такое docker-compose. Мы научимся работать с точками монтирования «volume» и поднимем с помощью технологии контейнеризации веб-приложение с прокси-сервером nginx, Python в роли API-интерфейса и Vue.js на фронте.




Что такое Docker?

Docker — это обширное программное обеспечение для запуска приложений в отдельных изолированных контейнерах.

Из чего состоит Docker?

Docker состоит из:
  1. CLI (по желанию можно установить графический интерфейс);
  2. Образов, или как их принято называть «Images»;
  3. Контейнеров;
  4. Площадки, где размещаются все образы «Docker Hub».
Какие приемущества Docker и чем технология контейнеризации отличается от виртуализации?

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

В некоторой степени контейнеризация удобнее чем виртуализация. Допустим мы имеем приложение, которое нужно поднять на 40-ка серверах-воркерах, которые обрабатывают действия пользователей. Нам нужно накататить систему на 40 серверов, настроить её, скачать все зависимости, скачать нужное приложение, запустить и настроить. А что если разработчик написал приложение и ставит на сервер его уже совсем другой человек? Очевидно, что он будет иметь трудности с таким большим объёмом работ.

Docker позволяет разработчику написать Dockerfile (в некоторых случаях docker-compose.yml), в котором он опишет приложение и дополнительные сервисы, которые нужны для работы приложения, произведёт всю настройку приложения, задаст нужные параметры и сохранит это всё в образ, который в будущем будет запущен всего одной командой.

Docker так-же имеет и другие приемущества по отношению к ПО виртуализации:
  1. Быстрое развёртывание (деплой) приложения;
  2. Меньшее потребление ресурсов;
  3. Легкость в управлении зависимостями;
  4. Упрощенная масштабируемость;
  5. Интеграция с CI/CD процессами.


Установка Docker и начало работы с ним

Процесс установки на Linux Ubuntu Server 22.04:

Используем sudo snap install docker

1717873093013.png


После установки используем sudo docker info

1717873258327.png


Установка для Windows проходит через обычный инсталлер. Найти его можно на официальном сайте




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

sudo docker run -d -p 80:80 docker/getting-started

1717873652879.png


Что мы сейчас сделали? Мы скачали официальный образ getting started от разработчиков docker используя всего одну команду и развернули веб приложение, которое было написано совсем другим разработчиком. В аргументах команды, которую мы использовали, мы указали, что контейнер запустится detached (флаг -d) — то есть мы не увидим всех действий, которые производятся в контейнере. Флаг -p 80:80 означает, что внутри контейнера будет проброшен порт 80 на порт 80 нашего сервера.

Если вы запускаете это приложение на своем компьютере, то перейдя на localhost вы увидите страницу docker.

1717874055768.png




В следующих уроках мы изучим все основные команды Docker, разберём написание Dockerfile и docker-compose.yml.
 
Последнее редактирование:

nelit.dev

Участник
Автор темы
70
37
в том, что это паста
подробнее с цитатами напиши мне и аргументируй то, что гайд плохой.

к тому же, это первый урок из серии ты не можешь оценить весь гайд по одному лишь уроку. это текстовый урок, в котором для новичков я кратко описал что такое докер. чего ты ожидал от гайда с названием "Что это и с чем его едят?" — изучение полностью докера что-ли? ебать ты умный.
 
  • Клоун
Реакции: XRLM

nelit.dev

Участник
Автор темы
70
37
Да гайд то может и неплохой, просто это гайд по установке)
о. неужели единственный умный тут) гайд с пометкой 1, помимо этого в названии написано, что я рассказываю тут про докер. а уже следующие гайды будут объяснять конкретные аспекты работы с докером. написание докерфайлов и тому подобное.