Статья изначально опубликована на Itnext.
Введение в докер
В сегодняшнем мире все из нас большинство из нас, должно быть, слышали или столкнулись с проблемами, такими как код хорошо работает в среде Dev, но не в тестировании или производственной среде. Из-за этого команда операций сталкивается с серьезной головной болью поддержания систем в их правильном состоянии без простоя или не влияющих на конечный пользователь. Это становится игрой змеи и лестницы между Dev and Ops и создает много хаоса, что приводит к непродуктивным релизам, пропаганам и вопросам доверия. Когда код разработчика работает в одном компьютере, но не в другом, много времени разработчика потребляется в нахождении точной ошибки, которая вызвала эту проблему. Docker — это инструмент, который решает эту головоломку, с Docker мы можем упаковать код вместе со всей его конфигурацией и зависимостями, чтобы он мог работать без проблем в любой среде, будь то разработка, операция или тестирование.
Почему докер?
Docker изменил способ приложений, используемых для сборки и отправки. Он полностью революционизировал мир контейнеризации. С Docker, развертывание вашего программного обеспечения становится намного проще, вам не нужно думать о пропущении конфигурации системы, базовой инфраструктуры или предпосылкой. Docker позволяет нам создавать, развертывать и управлять легкими автономными пакетами, которые содержат все, что необходимо для запуска приложения. Чтобы быть конкретным, он содержит код, библиотеки, время выполнения, настройки системы и зависимости. Каждая такая упаковка называется контейнерами. Каждый контейнер развернут свой собственный процессор, сетевые ресурсы, память и все, без необходимости зависеть от любого отдельного внешнего ядра и операционной системы.
Представьте себе, что вы тысячи тестовых случаев, чтобы запустить подключиться к базе данных, и все они проходят последовательно. Сколько времени вы думаете, что займет? Но с Docker это произойдет очень быстро с подходом контейнеризации, где все эти тестовые случаи могут одновременно работать параллельно на одном хосте.
Преимущества использования Docker
- Включает последовательную среду
- Простота в использовании и обслуживании
- Эффективное использование системных ресурсов
- Увеличение скорости доставки программного обеспечения
- Увеличивает операционную эффективность
- Увеличивает производительность разработчика
- Дочсерская архитектура
Кредиты изображений: Docker
Docker работает на архитектуре клиент-сервер. Существует что-то называемое Docker Client, который разговаривает с демоном докера, который делает тяжелую подъем постройки, бегущего и распределения контейнеров докеров. Как Docker Client и Docker Daemon могут работать в той же системе, или на другой — это, вы можете подключить клиент Docker к удаленному демону докера. Клиент Docker и демон общаются с использованием API отдыха через Unix розетки или сетевой интерфейс.
Основные компоненты в Docker System
Docker Image.
Docker Images состоит из нескольких слоев файловых систем только для чтения, эти файловые системы называются файлами Docker, они просто текстовые файлы с набором предварительно написанных команд. Для каждого написания текста или инструкции, приведенные в Docker-файле, создается слой, и помещается сверху другого слоя, образующего изображение докера, которое является будущим, используемым для создания контейнера Docker. Docker создал HUB.Docker.com, где люди хранят свои созданные образы докера, это похоже на область хранения для Docker Images, также его можно хранить в местном реестре.
Контейнер докера
Контейнер — это изолированное приложение, он построен из одного или нескольких изображений и действует как целая система пакета, которая включает в себя все библиотеки и зависимости, необходимые для приложения для запуска. Контейнеры Docker приходят без ОС, они используют Host OS для функциональности, поэтому это более портативная, эффективная и легкая система, которая поставляется с гарантией, что программное обеспечение будет работать в любой среде.
Docker Engine
Это ядро соединительной системы Docker, приложение, которое установлено на хост-машина, и это следует за архитектурой клиент-сервер. В основном есть 3 компонента в Docker Engine:
Сервер является Docker Daemon по имени Докерд. Создает и управляет докерными изображениями, контейнерами, сетями и т. Д.
REST API поручает Docker Daemon, что делать.
Интерфейс командной строки (CLI) — это клиент, используемый для ввода команд Docker.
Docker Client
Docker Client является ключевым компонентом в системе Docker, которая используется пользователями для взаимодействия с Docker, он предоставляет интерфейс командной строки (CLI). Когда мы запускаем команды Docker, клиент отправляет эти команды на Daon Dockerd, чтобы выпустить сборку, запустить и остановить приложение.
Docker Registry
Это место, где хранятся докер изображения. Docker Hub и Docker Cloud представляют собой общественные реестры, которые могут быть доступны всеми, и все, тогда как другие варианты имеют свой собственный частный реестр. Docker по умолчанию настроен на поиск изображений на Docker Hub. Вы также можете иметь реестр Artifactory Docker для получения дополнительной безопасности и оптимизации ваших сборки.
Давайте попадаем в практичность докера
Шаги для установки Docker:
Ниже приведена ссылка для установки Docker, которая предоставляется Docker, у нас есть четкое документация, доступная для установки Docker. https://docs.docker.com/engine/install/ubuntu/ Как только Docker установлен, проверьте версию Docker
Несколько основных команд докеров
- Docker PS: дает вам список активных контейнеров на вашем компьютере
На выходе мы видим, что он отображает несколько подробностей о контейнере
ID контейнера: каждый контейнер будет назначен с уникальным идентификационным изображением: Каждое изображение имеет прикрепленную команду тегов: каждый и каждое изображение будет назначено с уникальным созданным идентификатором: показывает детали при создании статуса: показывает, что контейнер активен или нет порты: Выставленные имена портов: Случайное имя назначено Docker для созданного контейнера
Docker PS-A Дает вам полный список контейнеров, включая один раз, которые останавливаются или разбиты
Docker Images Дает вам список изображений, присутствующих в системе
Docker запустить аргумент image-name Это создаст контейнер с использованием имени изображения
Здесь аргументы -Itd означает I — интерактивный T — подключен к терминалу D — Отдельный режим
Мы можем запустить контейнер как отдельный режим (-Itd) или корневой режим (-TD) согласно требованию.
Docker Stop Container-ID/имя Чтобы остановить контейнер
Docker RM контейнер-идентификатор/имя Удалить контейнер
Docker RMI Image-ID Удалить образец докера
Docker Exec -it контейнерное имя/bin/bash/ Получить доступ к оболочке контейнера
С помощью этой команды мы можем запустить наш необходимый код в контейнере.
Объемы в контейнере
Контейнеры являются динамическими в природе, они много двигаются, сегодня контейнер может быть на сервере A завтра он может находиться на сервере B, поэтому они будут перетасовываться, перемещены в соответствии с требованиями, действующими в качестве хранилища данных или хранилище данных или хранилище данных или хранилище данных или хранилище данных или хранилище данных или хранилище данных, прикрепленное внешне в контейнере Отказ
Скажем, например, в каталоге данных (данные) у нас есть data1 и data2 в качестве файла, которые являются частью данных, связанных с нашим приложением для работы. Но мы не хотим, чтобы эти данные были действительно сохранены в контейнере, вместо того, чтобы мы хотим, чтобы он был установлен, поэтому фактическое чтение и запись произойдет в Data1, и Data2, он будет выглядеть как часть контейнера. Таким образом, эти установленные данные называются томами.
Теперь, когда у нас есть основное представление о создании, удалении и запуске контейнера, в дальнейшем увидит, как создать свое собственное изображение.
На нашем серверной машине нам необходимо установить Apache2, запустив ниже упомянутые команды: Sudo APT-Get Update Sudo apt-get install apache2
Создание докерафилов
Создайте каталог в качестве пример-кода в том, что создают файл DockerFile и index.html
Каждый докер начинается с команды, которая говорит от того, откуда приходит базовое изображение, здесь мы говорим использовать httpd в качестве нашего базового изображения, а затем мы хотим добавить файл index.html, который будет действовать как наш источник и наш Место назначения будет/usr/local/apache2/htdocs/index.html, когда мы запускаем этот файл Docker, создаст временный контейнер, и он создаст изображение из него, как только изображение создано, мы можем использовать это изображение для создания контейнера из этого.
Docker Build. -T первое изображение: Эта команда построит изображение, на котором первый маг — это имя изображения
Docker Run -itd — Имя первого контейнера -P 8090: 80: 80: Эта команда построит контейнер, в котором первый контейнер — это имя контейнера, сопоставленного к порту 80 Мы можем увидеть вывод: http://server_ip: порт
Заключение
Контейнеры докеров лучше, чем виртуальные машины, потому что они гарантируют, что наше приложение работает без какой-либо ошибки. Контейнерезация прокладывает путь вперед к цифровым преобразованиям в организациях по работе с программным обеспечением. Контейнеры Docker могут быть развернуты с любыми рамками и языком по вашему выбору, если для них уже доступно изображение в сообществе. Многие инструменты CI/CD, такие как jenkins, circleci, Traviesci и т. Д. Теперь полностью поддерживают и интегрированы с Docker, что делает рассеивание ваших изменений от среды в среду теперь — это бриз. Docker делает развертывание приложения очень легко и потому, что контейнеры легкие, оно помогает в масштабе и автоматизации.
Есть несколько бесплатных ресурсов, вы можете узнать докер. Перечисление некоторые ниже,
- Докер для абсолютных начинающих
- Начало работы с Docker
- Упражнения докера и контейнеров
- Узнайте докер, создавая микросервис
- Докер в развитии
Оригинал: «https://dev.to/pavanbelagatti/getting-started-with-docker-for-developers-3apo»