Как docker сэкономит ваше время, и почему вы должны изучить его немедленно. (1/2)

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

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

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

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

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

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

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

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

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

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

Пачкаемся с Redis!

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

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

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

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

Например, эта команда извлечет образ redis и запустит контейнер под названием «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 нашего localhost.
И теперь вы можете получить доступ к Redis через localhost:6379.

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

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

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

Команда «run» сначала посмотрит в вашем локальном каталоге, есть ли образ с именем «ubuntu», затем, если его нет, docker возьмет его из Dockerhub.

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

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

-p 8118:8118-p 9050:9050) — это связка портов, которая сопоставляет порт 8118 контейнера с 8118 нашего localhost.

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

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

И у вас будет браузер chrome на localhost:3000.
Это может быть очень полезно для скрапбукинга.

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

В основном это не требует никаких усилий

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

Другие ресурсы

Существует очень много руководств, но я предложу те, которые мне понравились больше всего.
Это инструкции, которые показывают, как контейнеризация поможет нам: Containerization explained
Курс по Docker и Kubernetes от Стефана Гридера

Заключительная цитата

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

Оцените статью
devanswers.ru
Добавить комментарий