Докер уже некоторое время и широко используется. Я думаю, что понимание того, как использовать Docker начинает стать необходимым навыком в качестве контроля версий (I.E. Git ) для профессиональных программных инженеров.
Тем не менее, многие не технические люди не понимают докера.
И это не удивительно, потому что это сложно, и вы должны понимать несколько слоев вещей, чтобы действительно добраться до того, что именно Docker делает для людей.
Тем не менее, Docker — горячая технология, и мы должны поговорить об этом!
Примечание : Эта статья была первоначально написана для рекрутеров, но я попытался разбить это, чтобы кто-либо работал в Tech (но без инженерного фона), мог следовать за ним.
Операционные системы и виртуальные машины
Вы, вероятно, знаете, какова операционная система (ОС) и может назвать несколько. Windows, Mac OSX, Linux. Это все операционные системы. Они предназначены для программного обеспечения, который является базовым слоем, который вы устанавливаете на ваше физическое оборудование (ваш физический компьютер) и запускают программы внутри. ОС обрабатывает подключение ваших программ к вашим входным устройствам, таких как мышь и клавиатура, а также выводные устройства, такие как мониторы.
Довольно основные вещи верно? Ну, идея Виртуальная машина (VM) означает запустить операционную систему практически. Вы можете установить программы, которые позволяют установить другую операционную систему и запустить ее внутри вашей рабочей системы хоста.
Так что это может выглядеть так:
- Физическое оборудование: Apple MacBook
- Хост ОС: Mac OS X
- Программа виртуализации: Виртуальная коробка
- Виртуальная ОС: Ubuntu Linux.
Я сделал эту диаграмму ниже, чтобы объяснить пример этого:
На самом деле на вашем компьютере работает другой компьютер. Вы получаете окно, где вы можете войти внутрь него и взаимодействовать с ним.
Итак, что тогда Docker тогда?
Вы можете подумать о программном обеспечении Docker, который запускает виртуальные машины. В частности, он пробегает вещи, называемые Дочсерские контейнеры , которые происходят от вещей, называемых Docker Images Отказ
Быть ясным, докер Как бегун виртуальной машины. Несмотря на самом деле, это на самом деле делает что-то более эффективнее, чем запуск целой виртуальной машины, но я не собираюсь в эти данные в этом посте.
Docker Images как Шаблон Для виртуальной машины, которая может содержать все, что вы хотите. Например, вы можете определить эти вещи, когда вы делаете Docker Image:
- Базовая ОС, чтобы начать от таких как Alpine Linux
- Программы, которые вы установлены в ОС (например, Java, если ваша программа — приложение Java)
- Код вашей программы — который был бы вашим кодом Java
Затем, когда вы запускаете это изображение, он запустит вашу программу, которую вы написали! И это будет запустить его в любом месте докера. Это важная часть: если вы устанавливаете Docker где-то еще, вы можете запустить любой образ докера на этом компьютере.
Держись, что такое точка?
Когда вы «отправляете» код в облако, вы просто пытаетесь запустить свой код на другом компьютере в центре обработки данных где-то. Поэтому, когда вы читаете что-то вроде:
Docker поможет вам отправить код и запустить приложения в любом месте
Это то, о чем они говорят. Вы пытаетесь запустить свой код для вашего программного обеспечения на другом компьютере (возможно, в облаке), и Docker поможет вам сделать это.
Используя Docker
Как я уже сказал, когда ты построить Образ докера, вы обычно делаете это с целью создания его с вашим приложенным кодом. Поэтому, когда вы делаете шаблон, вы пишете инструкции, которые копируют код приложения в изображение. Вы делаете все возможные шаги построения (например, установка библиотек или компиляционный код). Теперь у вас есть изображение.
Теперь, когда у вас есть изображение, вы можете запустить его, где установлен Docker. Так, например, на вашем сервере заканчивается в облачный поставщик услуг, как AWS. Вы устанавливаете Docker один раз, на машине, работающей в облаке, а затем вы можете просто обновить изображение Docker и запустите новую версию образа Docker!
Вот диаграмма изготовления докера изображения и работает на него:
Вертикальные виды на то, что происходит
Я сделал несколько более причудливых диаграмм, чтобы показать, что происходит при запуске контейнеров в двух разных сценариях. Это более реальный мир пример, как вы можете запустить несколько контейнеров на одном и том же время выполнения докера.
Эти два контейнера (приложение Java и база данных) будут похожи на два отдельных компьютера, работающих на хост-компьютере, как виртуальные машины. За исключением того, что Docker гораздо более эффективен, чем запуск целых виртуальных машин. Контейнеры Docker обычно управляют только одним процессом, что вы хотите запустить. Итак, здесь вы можете сделать это и не испытывать большие проблемы с производительностью, такие как вы, если вы работаете на полном объеме VMS.
Почему люди используют Docker
Опять же, в основном потому, что это легко развернуть приложения. Если вы сможете доставить свою среду разработки именно для вашей среды для производственных серверов, ваши клиенты собираются использовать (снова в облаке), которые помогут вам сократить вопросы по вопросам.
Я позволю этому мему суммировать это.
В дополнение к тому, что существует множество инструментов, построенных на вершине идеи беговых контейнеров докеров, а контейнеров в целом, таких как Kubernetes или Docker Rharm, поэтому обычно люди имеют целый другой слой системы в смеси. Но я сэкономлю эти детали для другого поста.
Выводы
Есть много причин, почему люди используют Docker:
- Облегчает надежно построить ваше приложение
- Делает развертывание проще и надежнее
- Облегчает делиться и запустить сложную среду Dev
- Может легко запускать такие вещи, как серверы баз данных без установки (традиционно, вы не могли!)
И большинство новых программных проектов имеют докер где-то в своем процессе. Будь то в их среде развития, их производственной среде или просто на их серверах CI, Докер, вероятно, там, наверное.
Поэтому понимание Docker важно, потому что все больше и больше в будущем Docker будет основой для многих новых технологий, выходящих. И если вы не можете понять фундамент, будет трудно понять новое здание на вершине фундамента.
Это помогло тебе? Я получил много запросов, чтобы написать этот пост! Дайте мне знать, если это прояснится немного. Docker действительно трудно понять, потому что вам нужно воскресить много понятий, сначала получить, почему вы хотели бы иметь такой инструмент.
Оригинал: «https://dev.to/ard/docker-explained-visually-for-the-non-technical-419g»