Что такое Docker
Многие идеи из виртуальных контейнеров могут быть связаны с историческим использованием их физических аналогов. Традиционно контейнеры позволили нам изолировать, хранить и отправлять различные типы предметов в одном теле (например, транспортный корабль, склад и т. Д.). В вычислениях контейнеризация позволяет нам отделить и запускать несколько виртуальных операционных систем на одном хостом. Docker предоставляет функции, которые создают и взаимодействуют с этими виртуальными системами.
Контейнеризация против виртуальных машин
Читатели, знакомые с виртуальными машинами, могут заметить, что контейнеры, похоже, заполняют аналогичную роль — это правильно! Однако контейнеры имеют ключевое преимущество, которое делает их лучшим выбором в большинстве ситуаций. Виртуальные машины эмулируют всю виртуальную операционную систему (включая виртуальное ядро) с использованием программного обеспечения, называемого гипервизором. Docker с другой стороны использует фоновый процесс (демон), который способен имитировать операционную систему контейнера, используя только ядро хост-операционной системы. Это значительно снижает время запуска, требования к памяти CPU и вычислительная скорость, которые могут спасти пользователя много денег (особенно при использовании поставщика облачного обслуживания).
Преимущества и использование случаев докера
Используя Docker, самая популярная контейнерная система, имеет много преимуществ из-за большого количества функций и богатой экосистемы, которую она обеспечивает. Некоторые из его наиболее заметных функций, для которых будущие посты будут работать более подробно, здесь перечислены здесь:
- При разработке программного обеспечения может быть трудно убедиться, что среда и зависимости от машины разработчиков будут такими же, как на удаленном сервере. Программное обеспечение может быть загружено в контейнер и отправлено на сервер, гарантируя, что он ведет себя так, как он сделал на локальной машине.
- Контейнеры Docker обеспечивают различные способы взаимодействия друг с другом, что позволяет формировать контейнерные сети.
- Большое сообщество образовалось вокруг Докера. Новые контейнеры Docker можно быстро настроить, используя чертежи контейнеров (более широко известные как «Docker Images») других пользователей. Благодаря Dockerhub, множество баз данных, инструментов мониторинга и других произведений сложных программ можно инициализировать мгновенно.
- Многие инструменты и облачные провайдеры предлагают интеграции докеров, так как это отраслевой стандарт.
Установка докера
Установщик для Windows и Mac может быть установлен из Docker Hub. Если вы находитесь на машине Linux, вам нужно будет использовать командную строку. Вот как установить Docker на Ubuntu:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install -y docker-ce sudo service docker start sudo docker run hello-world
Предыдущий код установит Docker, а затем запустить демон. Когда докер работает и работает, он постарается запустить контейнер «Hello-World» на вашей машине — если Docker не находит «изображение» с таким именем на вашем компьютере, он попытается скачать его из Dockerhub. Если все сработало, вы должны увидеть подсказку «Hello World».
Что именно является изображение докера?
Образование докера можно рассматривать как чертеж для контейнера Docker — каждый контейнер Docker построен с использованием образа докера. Подумайте, когда вы впервые начали свой компьютер в первый раз — каковы были первые шаги, которые вы взяли? Вы, вероятно, установили некоторое программное обеспечение, которое вам понадобится, и сделали некоторые конфигурации. Вы можете подумать о Docker Image аналогичным образом, в том смысле, что он по сути, по сути, по существу, скомпилированным списком шагов, которые Docker выполнит, чтобы создать свой контейнер. Эти шаги определены в DockerFile — я буду обсуждать, как создавать их в следующей части этой серии.
Что такое Docker Hub?
Docker имеет много пользователей, многие из которых сделали свои изображения Docker Pointsian Public с помощью сервиса под названием Dockerhub. Большинство программных программ доступно в виде документа Docker, которое вы можете загружать и запускать в считанные секунды, сохраняя необходимость установки или определить свое собственное изображение. Изображения на Dockerhub версии, что означает, что вы можете выбрать лучшее значение для вашего технологического стека. Многие компании фактически создают официальные документы Docker для своего программного обеспечения и публикуют их, давая вам степень уверенности в том, что ваш контейнер будет работать должным образом. Из-за всех этих функций, предоставляемых Dockerhub, я предлагаю вам всегда проверять, будет ли изображение для некоторого программного обеспечения, которое вы пытаетесь установить, уже существует.
Dockerhub также дает вам возможность загружать свои собственные образы докера. Это имеет несколько преимуществ — вы можете помочь сообществу, создав изображение, которое может быть полезно для большей группы пользователей, или вы можете загрузить свой контейнер приложений в качестве частного изображения, а затем просто загрузите его прямо на удаленный сервер, используя клиент Docker.
Изображение версию с тегами
Docker имеет систему версий для контейнерных изображений — это называется «теги». На Dockerhub вы увидите список тегов для каждого изображения, которое вы можете использовать, чтобы выбрать, какую версию данного изображения вы хотите построить. Они обычно относятся к версии программного обеспечения, работающего в контейнере, но также могут включать определенные настройки или конфигурации. Например, многие поставщики религируют теги для их контейнерных изображений, которые основаны на Alpine Linux , чрезвычайно легкое распределение Linux, разработанное специально для работы в контейнерах.
Переменные среды
Как и в любой операционной системе, Docker Containers может иметь переменные среды, которые могут помочь определить поведение компонентов, установленных в системе. Изображения на DockerHub часто имеют список переменных среды с описаниями, которые установлены после создания контейнера, позволяя пользователю настроить программное обеспечение.
Что делает хорошее изображение?
- Если образец Docker является «официальным» изображением, можно предположить, что он соответствует высококачественному стандарту
- Изображение только имеет необходимые компоненты, установленные для выполнения задачи, предназначенного для того, чтобы, не вызывая ненужного накладных расходов.
- Это позволяет пользователю настроить контейнер с использованием описательных переменных среды
- Он обеспечивает широкий спектр меток, позволяющий пользователю выбирать более старые версии программного обеспечения, которое может работать лучше с их TechStack
- Убедитесь, что изображение Docker используется многими людьми, обычно указываемыми количеством загрузок и звезд, что конкретное изображение имеет
- Есть инструменты (такие как AncaRe), которые могут помочь вам проанализировать изображение и помочь обнаружить любые недостатки безопасности с вашими конфигурациями
Потянув изображение
Для этого я собираюсь использовать официальный образ MySQL. После выполнения следующего кода я вижу, что Docker начинает загружать (или «тянуть») Изображение MySQL:
docker pull mysql:8
Вам может быть интересно, почему я добавил «: 8» на имя моего изображения. Как вышеупомянутые, изображения могут иметь теги, обычно представляющие разные версии этого изображения. С помощью этого синтаксиса я говорю, что хочу потянуть версию моего изображения, которая коррелирует на тег «8», что в этом случае означает, что я получу изображение для контейнера, запущенного MySQL версии 8. По умолчанию, если вы не укажете тег, вы получите последнее изображение, которое было загружено (которое также можно получить, настроить «Последние» как тег). Я обычно указываю тег для моих изображений докера, так что я всегда могу быть уверен, что знаю, какую версию ссылаться, когда я столкнулся с проблемами — это личное предпочтение, конечно.
Строительство и управление контейнером
После вытащивания докер хранит наш образ для будущего использования. Если мы хотим использовать наше изображение для контейнера, нам нужно создать контейнер и начать его. Примечание: Если вы выполните команду, чтобы попробовать и запустить контейнер на основе изображения, который не существует локально, Docker автоматически загружает это изображение из концентратора.
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=password -d mysql:8
Предыдущая команда будет строить и запустить контейнер с именем «MySQL-Containter». Наше изображение MySQL имеет несколько параметров, которые мы можем указать, которые специфичны для этого конкретного изображения. Обычно вы можете увидеть, какие параметры (или «переменные среды») доступны для данного изображения на Dockerhub. При проверке переменных для официального изображения MySQL мы можем видеть, что переменная MySQL_ROOT_PASSWORD на самом деле обязательно. Мы хотим многократно использовать шаблон —e для каждой переменной, которую мы хотим определить, при запуске нашего контейнера через командную строку.
После ввода предыдущей команды мы хотим подтвердить, что наш новый контейнер был построен с использованием изображения, который мы определены. Введите следующие команды:
docker ps docker stop mysql-container
Первая команда будет перечислять все беговые контейнеры. Вторая команда остановит контейнер с именем, которое мы проходим как аргумент, в этом случае «MySQL-Containter». Надеюсь, первая команда показала вам, что наш контейнер на самом деле работает! В следующем уроке мы возьмем более глубокое погружение в различные команды Docker, которые доступны.
Оригинал: «https://dev.to/marcbeaujean/introduction-to-docker-docker-series-part-1-12g5»