Что такое Докер? И почему он популярен?
Повсюду в Интернете вы найдете статьи о том, как docker сравнивается с VM, и диаграммы вроде этой:

Докер против виртуальной машины

Но я научу тебя Докеру просто как инструментпоэтому его будет так легче понять, и мы не будем много анализировать его базовую функциональность (мы делаем это всего несколько раз 😅).


Не устанавливайте новые приложения! просто потяните их!

Самое интересное в докере для новичка — это возможность так легко использовать разные инструменты.
ДокерХаб будет как магазин приложений!

Магазин приложений Docker!

Как видите, мы можем подобрать любое приложение, которое захотим, на самом деле мы называем их образами в мире Docker.


Что такое образ?

Образ представляет собой набор приложений и команд, работающих на базовом образе, и сам этот базовый образ представляет собой упрощенный дистрибутив Linux.
Этот Linux не имеет графического интерфейса и может быть любым дистрибутивом, таким как Ubuntu, Alpine, Bullseye и т. д.

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


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

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


Загрязняться с Redis!

Давайте на практике поработаем с Redis,
Перейти к эта ссылка

Редис докерхаб

В этой картине,
Теги можно рассматривать как различные версии изображений, имя тега может включать в себя имя базового изображения и его версию.

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

В правом верхнем углу вы можете увидеть docker pull redis команда, это самый простой способ получить это изображение, но мы можем найти более подробные команды внизу этой страницы.

Например, эта команда вытянет redis image и запустите контейнер под названием «my-redis-container»:

docker run --name my-redis-container -d redis
Войти в полноэкранный режим

Выйти из полноэкранного режима

-d используется для отсоединения процесса, он запустит этот контейнер и оставит оболочку в покое для вашего будущего использования.

Но вы не можете использовать этот контейнер, вы должны открыть порт Redis.

docker run --name my-redis-container -p 6379:6379 -d redis
Войти в полноэкранный режим

Выйти из полноэкранного режима

-p 6379:6379 — это сопоставление портов, которое сопоставляет порт 6379 контейнера с 6379 нашего локального хоста.
Теперь вы можете получить доступ к Redis через localhost:6379.


Что еще я могу сделать?

  • Вы пользователь Windows, но хотите использовать Linux, не сталкиваясь с проблемами виртуальной машины или двойной загрузки? Запустите эту команду:
docker run --name itubu -it ubuntu
Войти в полноэкранный режим

Выйти из полноэкранного режима

Это создаст контейнер с именем «itubu» и соединит вашу оболочку с его оболочкой.
запускаю убунту в докере

команду «запустить», сначала посмотрите в своем локальном компьютере, чтобы увидеть, есть ли какой-либо образ с именем «ubuntu», а затем, если он не существует, Docker вытащит его из Dockerhub.

  • Вы хотите использовать сеть Tor, не заморачиваясь с настройкой Tor? Запустите эту команду:
sudo docker run -p 8118:8118 -p 9050:9050 -d dperson/torproxy
Войти в полноэкранный режим

Выйти из полноэкранного режима

dperson/torproxy — это неофициальный образ докера.

-p 8118:8118 (а также -p 9050:9050) — это сопоставление портов, которое сопоставляет порт 8118 контейнера с 8118 нашего локального хоста.

Теперь вы можете проксировать свои запросы через сеть Tor, используя эти порты.

  • Вы хотите использовать безголовый браузер? Запустите эту команду
docker run -p 3000:3000 browserless/chrome
Войти в полноэкранный режим

Выйти из полноэкранного режима

И у вас будет браузер Chrome на локальном хосте: 3000
Это могло бы быть так полезно для скрапа.

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


Это в основном не требует усилий

Docker сам по себе играет важную роль в мире DevOps, и, без сомнения, у него есть так много советов и хитростей.
Но в большинстве случаев, как новичку, вам понадобится всего лишь однострочная команда или 10-строчный Dockerfile, чтобы сделать ваш проект намного лучше.
Преимущества использования Docker объясняются в видео, которое я добавил в конец этой статьи, и я не буду их освещать.


Другие источники

Существует так много руководств, но я собираюсь предложить те, которые мне понравились больше всего.
В качестве инструкции, показывающей, как нам поможет контейнеризация: Объяснение контейнеризации
Курс Docker и Kubernetes от Stephan Grider


Окончательная цитата

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