Найти в Дзене
Коротко об ИТ

Просто о Docker

Docker — это программное обеспечение, которое дает возможность на определенном участке памяти изолированно установить необходимую ОС (операционную систему), версию Java, настроить переменные окружения, установить различные зависимости и дать доступ только при определенных условиях. При этом данную программу совершенно не будет волновать, что происходит вокруг. Написан Docker на языке программирования Go, первая его версия была выпущена в 2013 году. Простыми словами: это возможность, образно говоря, отделить себе комнату, поклеить там обои, которые вам нравятся, расставить мебель и технику по вкусу, установить замок на двери и ключ выдать только брату. При этом, если вы зайдете в другую комнату, там все будет по-другому и никаких проблем не будет. Рассмотрим больше примеров На фото видно, как лайнер везет сотни контейнеров, в которых множество разных грузов. Без помещения груза в отдельные контейнеры, транспортировка была бы невозможной. Мы погрузили груз в контейнеры и уверены, что он
Оглавление

Docker — это программное обеспечение, которое дает возможность на определенном участке памяти изолированно установить необходимую ОС (операционную систему), версию Java, настроить переменные окружения, установить различные зависимости и дать доступ только при определенных условиях. При этом данную программу совершенно не будет волновать, что происходит вокруг.

Написан Docker на языке программирования Go, первая его версия была выпущена в 2013 году.

Простыми словами: это возможность, образно говоря, отделить себе комнату, поклеить там обои, которые вам нравятся, расставить мебель и технику по вкусу, установить замок на двери и ключ выдать только брату. При этом, если вы зайдете в другую комнату, там все будет по-другому и никаких проблем не будет.

Рассмотрим больше примеров

-2

На фото видно, как лайнер везет сотни контейнеров, в которых множество разных грузов. Без помещения груза в отдельные контейнеры, транспортировка была бы невозможной. Мы погрузили груз в контейнеры и уверены, что он будет транспортироваться в целости и сохранности.

Так и в случае с программами, сервер — это наш лайнер, а Docker — это возможность получить такие контейнеры, в которые мы сможем погрузить груз (программы). И при таком использовании будем уверены, что одна программа не поломает другую, в одном контейнере будет Windows, в другом Linux, в третьем — MacOS.

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

Почему Docker, а не Виртуальная машина?

Виртуальная машина (ВМ) — эмулятор аппаратного обеспечения. Простыми словами на своем компьютере с помощью программы вы можете установить себе еще какую-либо ОС (операционную системы), которую сможете запустить параллельно.

Одно из преимуществ технологии Docker — это независимость платформы. То есть вы можете описать запуск программы, работая на Windows, а потом без проблем запустить на MacOS. Это дает возможность очень быстро переносить и настраивать программу на различных серверах.

Общая схема работы Docker

Для начала необходимо установить Docker на ваш компьютер, чтобы можно было создавать, настраивать и запускать контейнеры. Инструкций по установке на просторах интернета полно, в том числе и на официальном сайте docker.com.

Схема создания контейнера выглядит следующим образом:

Схема создания контейнера
Схема создания контейнера

1. Создаете "Dockerfile" — файл, в котором необходимо описать, как будет создаваться образ. Простыми словами — это описание того, как будет выглядеть ваша комната;

2. Image — это образ, на основании которого в дальнейшем будет запущен контейнер. Это дизайнерский проект вашей комнаты, четкая схема того, что и где будет стоять;

3. Container — это запущенный образ, в котором работает ваша программа с описанными зависимостями согласно инструкции. То есть, это уже готовая комната, в которой вы можете жить.

Необходимо понимать, что необходимые программы и зависимости берутся не из воздуха, а есть определенное удаленное хранилище, где следуя нашим инструкциям получается необходимое, то есть предварительно нет необходимости заходить на отдельные сайты и что-то скачивать, Docker все сделает за вас!

Это похоже на то, когда вы знаете, какой ремонт планируете делать и едете в строительный магазин за всем необходимым, а не собираете все по разным магазинам.

Основные термины

Dockerfile — файл-инструкция по сборке образа. Данные не имеют расширения (наподобие .txt)

Image — образ, который создается на основании Dockerfile. Также образы можно скачивать и запускать с удаленного хранилища. Нет необходимости образ Ubuntu собирать самостоятельно). На основании одного образа можно создать несколько контейнеров.

Container — контейнер, который запускается на основании image (образа). Созданный контейнер можно запускать и останавливать. Параллельно можно запустить несколько контейнеров, независимых и зависимых друг от друга.

Docker Engine — это движок Docker, собственно, это сам докер.

Docker Hub — это как раз то удаленное хранилище, где вы можете загрузить необходимый образ. В это хранилище возможно сохранить свои образы, чтобы в дальнейшем была возможность получить доступ к ним где угодно и поделиться с кем угодно.

Docker-compose — это инструмент, который позволяет запустить несколько контейнеров, связанных между собой. Он может иметь свои настройки и может использовать описанные ранее настройки из Dockerfile. Это вам пригодится при более глубоком изучении данной темы.

Можно сказать, что контейнеризация дает нам возможность очень гибко подгонять необходимые настройки под наши программы, при этом не трогать глобальные настройки нашего сервера. Если там уже работают программы, мы можем запустить новые, изолировав их друг от друга, и тем самым сохранить работоспособность всех систем.