Дежол с докером (2 части серии)
Привет всем, надеюсь, вы хорошо кодируете.
Предварительные условия
В последней статье этого DEVOPS с серии Docker я объяснил, как вы можете использовать Docker, чтобы сделать вашу жизнь легко. Я обсудил, как большинство разработчиков нерешится, чтобы попробовать Docker, и есть несколько причин для этого, поэтому, пожалуйста, ознакомьтесь с этой статьей, если вы уже не прочитали.
В этой статье я также упомянул несколько случаев использования Docker. Теперь я собираюсь написать индивидуальные статьи для каждого из используемых случаев, которые я упомянул там, объясняя подробно и предоставляя фрагменты кода, чтобы даже любители могли поднять и использовать Docker в своей ежедневной жизни.
Сегодняшняя тема обсуждения
В этой статье я собираюсь объяснить, как можно использовать Docker в качестве менеджера пакетов для их машины для разработки. Большинство разработчиков используют заваривать
и APT
как их менеджеры пакетов в MacOS и Ubuntu соответственно. Несмотря на то, что в них нет ничего плохого, там могут быть сценарии, где эти парни потерпели неудачу вас.
Представьте, что вы фрилансер, который использует MongoDB V3.6 для личных проектов. Вы только что подписали новый клиент, и клиент просит вас использовать последнюю версию MongoDB, которая является V4.4. Теперь, как вы собираетесь управлять двумя разными версиями MongoDB на вашей машине для разработки? Я не говорю, что нет никакого способа сделать это, я просто говорю, что есть более простой способ, который должен использовать Docker.
Докер на вашем сервисе!
Docker — это услуга управления контейнерами, а контейнеры по определению обеспечивают изолированную среду к тому, что находится внутри. Разве это не именно то, что нам нужно? Нам нужны два службы MongoDB для бега независимо, не затрагивая друг друга.
Вы можете просто создать два контейнера докеров и запустить MongoDB V3.6 на одном и Mongodb V4.4 с другой. Задача решена!
Docker поставляется с удивительным CLI для разработчика, чтобы воспользоваться своими услугами и функциями. Команды Docker обычно имеют тенденцию быть очень долго и страшно, но если вы понимаете значение каждого и каждую команду и подкомую команду, то она становится куском пирога.
Вот команда для запуска MongoDB V4.2.5 внутри контейнера Docker:
docker run --rm -d \ -p 27017:27017 \ --env MONGO_INITDB_DATABASE=test_api_v4 \ -v $(pwd)/volumes/mongo-4.2.5:/data/db \ --name test_mongodb \ mongo:4.2.5
Используя эту команду, вы можете создать контейнер Docker, запущенный MongoDB V4.2.5 на порту 27017. Таким образом, вы можете запустить несколько таких экземпляров на вашей машине разработки, с каждым из них размещены на отдельном номере порта.
Создание команд
Как я уже сказал, как только вы полностью понимаете команды Docker, вам не займет время, чтобы вы написали на свой собственный (возможно, для другого случая использования). Я сломал вышеупомянутую команду докера в значимые куски, чтобы кто-то будет легче понять, что происходит.
Создать контейнер докера
Эта часть команды создает новый контейнер докера. --rm
Флаг сообщает Docker, чтобы удалить контейнер, как только мы остановим его, и -d
Флаг сообщает Docker для запуска контейнера в отдельном режиме (что означает, что контейнер не будет расторгнуть, как только мы закрываем терминал).
docker run --rm -d
Номера портов карты
Эта часть командных карт номера порта хоста с номером порта контейнера. Формат сопоставления — (Host-Port):( Контейнерный порт)
Отказ
-p 27017:27017
Обеспечить переменные среды
Эта часть команды предоставляет любые переменные среды (при необходимости) к контейнеру. Это идеальное место использования, если вы хотите создать контейнер для запуска базы данных внутри него, потому что вы захотите установить учетные данные пользователя и другие необходимые свойства базы данных во время его создания. Здесь мы устанавливаем имя базы данных Mongodb по умолчанию.
--env MONGO_INITDB_DATABASE=test_api_v4
Создать то громкость докера
Эта часть команды создает докерный том. Объем докера — это не что иное, как мост хранения между хостом и контейнером. В этом случае мы хотели бы сохранить файлы базы данных на нашу машину для разработки (что является хостом), поэтому мы создаем точку докера, который отображает наш текущий каталог в каталоге в контейнере, где Mongodb хранит свои файлы базы данных.
-v $(pwd)/volumes/mongo-4.2.5:/data/db
Назовите контейнер
Я думаю, что это самоуверенно. По умолчанию Docker назначает к нему случайную строку, если вы не предоставите имя явно.
--name test_mongodb
Определите документ докера
Эта часть команды определяет, какое изображение вы хотите запустить внутри контейнера. Строка имеет формат: (Имя изображения):( Image-версия)
Отказ По умолчанию, если вы не предоставляете версию, то Docker предполагает, что это будет Последние
Отказ
mongo:4.2.5
Пожалуйста, оставьте комментарий, если вы чувствуете, что что-то может быть улучшено здесь. Я могу продолжать только написание таких статей, если я получу поддержку от вас, ребята. Поделитесь этим с друзьями или коллегами, если вы чувствуете, что это действительно может помочь им.
Дежол с докером (2 части серии)
Оригинал: «https://dev.to/saranshabd/how-and-why-to-use-docker-as-a-package-manager-2jha»