Программа Docker не совсем для «чайников», но разобраться в ней несложно. В любом случае знать, для чего нужен Docker и как его правильно использовать, будет полезным. Неважно, в какой сфере разработки вы «крутитесь», потому что, если в вашем резюме будет написано: «Знаю, как работать с Docker» — это будет для вас дополнительным бонусом.
Итак, сегодня будем разбирать, что такое Docker, чтобы понятно было для пользователей с разным багажом знаний.
Docker для чайников
Docker — это программа, которая служит для автоматизирования запуска и управления приложениями на уровне операционной системы. Другими словами, это программа, которая внутри операционной системы создает виртуальную среду, где разработчик может развернуть собственное приложение.
Программа Docker была запущена не так давно — в 2013 году. Изначально она использовалась для внутренних целей ее разработчиков, но со временем все же «увидела свет» и стала популярным инструментом.
Для чего нужен Docker
Docker нужен для облегченного запуска приложений. С применением этой программы нет нужды задумываться об адаптации запущенного приложения. Например, у вас есть 3 разноплановых приложения, созданных для операционной системы Linux, и вы хотите запустить их на устройстве под управлением Linux. Каждое отдельное приложение использует разные языки программирования, разную архитектуру и разный подход к своему запуску.
При стандартном подходе вам нужно будет позаботиться о том, чтобы на устройстве были инсталлированы языки программирования, на которых написаны приложения. Также нужно продумать алгоритм совместимости каждого отдельного приложения с Linux. Напрашивается одно решение — создать 3 отдельные виртуальные машины для 3-х разношерстных приложений. Это возможно, если конечное устройство «потянет» 3 виртуальные машины. Но согласитесь, что это довольно долгий процесс.
При помощи Docker процесс будет намного проще. Нужно установить программу и воспользоваться ее возможностями. Docker использует внутри себя контейнерную технологию. Каждый отдельный контейнер — это отдельная среда для запуска приложений. Контейнер — это изолированная среда, которая никак не влияет на другие контейнеры и операционную систему. В разных контейнерах можно запускать приложения с разными требованиями к запуску.
Главное отличие контейнеров от виртуальных машин — виртуальная машина виртуализирует «железо» полностью, а контейнер виртуализирует только операционную систему. Поэтому для запуска контейнеров требуется меньше системных ресурсов, чем для виртуальной машины, притом что для запуска приложений контейнера более чем достаточно.
Программа Docker помогает взаимодействовать с контейнерами. Если провести аналогию из жизни, тогда Докер чем-то похож на игровую приставку «Денди». Была приставка, которая подключалась к черно-белым и цветным телевизорам. В эту приставку вставлялись картриджи с играми. Приставке было все равно, какая игра записана на картридже, главное, чтобы игра подходила к самой приставке. Докер по функциям напоминает игровую приставку, а картриджи — это контейнеры с приложениями.
Преимущества и недостатки Docker
Среди основных преимуществ программы Docker можно выделить следующие:
На одном устройстве можно запустить множество различных приложений с разными требованиями к запуску.
Оптимизированное использование мощности устройства. Один контейнер потребляет очень мало системных ресурсов, благодаря чему на устройстве размещают множество контейнеров.
Повышенная безопасность. Каждый контейнер изолирован друг от друга и от операционной системы. Это значит, что если возникает проблема внутри одного контейнера, то она никогда не разрастется по всему устройству и никак не повлияет на работу других контейнеров или операционной системы.
Более «дешевая» технология. По сравнению с виртуальными машинами, развернуть Docker и контейнеры будет «дешевле». Для большого количества виртуальных машин требуется более мощное устройство, чем для большого количества контейнеров.
Недостаток у Docker и контейнеров один, и он достаточно серьезный. Все разворачиваемые на одном Docker-устройстве приложения должны предъявлять одинаковые требования к операционной системе. То есть, если у вас есть несколько приложений для Линукс и одно для Виндовс, тогда приложение для Виндовс не сможет работать рядом с приложениями для Линукс. Для него потребуется другое устройство.
Docker для чайников: основная терминология
Начинающим пользователям Docker нужно хорошо разбираться в терминологии этой программы. Важные термины мы приведем в нашей статье:
Images. Это образы приложений, которые запускаются в контейнерах.
Containers. Это изолированное место, где запускаются приложения.
Docker Daemon. Это сервис, который отвечает за взаимодействие с контейнерами.
Docker Client. Это мини-программа, которая помогает пользователю взаимодействовать с Docker Daemon.
Docker Hub. Это публичный реестр доступных образов приложений.
Docker: как пользоваться
Для того чтобы пользоваться Docker, нужно сначала его установить. Изначально Докер работал только в операционной системе Linux, однако уже долгое время доступен и для других ОС. Вы можете скачать Docker для собственной операционной системы с официального сайта программы.
После того как Docker будет установлен, вам пригодятся основные команды для взаимодействия с программой через консоль. Например:
«docker create». Команда, при помощи которой создается новый контейнер в Докере. Например, мы хотим создать контейнер с использованием образа Ubuntu, тогда команда будет такой: «$ docker create ubuntu».
«docker ps». При помощи этой команды можно просмотреть все контейнеры, запущенные на устройстве. Если нужно увидеть вообще все контейнеры, даже те, которые не запущены в данный момент, тогда в конце команды нужно добавить ключ «-а».
«docker start <имя или ID контейнера>». Эта команда нужна, чтобы запустить ранее остановленный контейнер.
«docker stop <имя или ID контейнера>». Эта команда нужна, чтобы остановить работу определенного контейнера.
«docker restart <имя или ID контейнера>». Эта команда нужна, чтобы перезапустить работу определенного контейнера.
«docker run <имя образа>». Эта команда создает контейнер и сразу его запускает.
«docker rm <имя или ID контейнера>». Эта команда удаляет определенный контейнер.
«docker images». При помощи этой команды можно посмотреть все образы, открытые на вашем устройстве.
«docker rmi <имя или ID образа>». При помощи этой команды можно удалить определенный образ с устройства.
И др.
Заключение
Возможности Docker достаточно большие, поэтому их невозможно описать в одной статье. Однако нашей сегодняшней статьи будет достаточно даже для «чайников», чтобы понять, для чего нужен Docker и как им пользоваться.
Контейнерное развертывание приложений существует уже давно, но только благодаря Docker эта технология приобрела настоящую популярность.
Другое