Docker — это программное обеспечение, которое применяется в разработке, как инструмент для формирования контейнеризации. При помощи этого ПО можно эффективно и безопасно пользоваться ресурсами системы при быстром развертывании разношерстных программных продуктов. Принцип Docker — контейнеризация программ. То есть Docker создает изолированную среду(контейнер) для каждого отдельного приложения. Сегодня в статье мы обсудим работу с контейнерами Docker, например:
как создать контейнер в Docker;
как удалить все контейнеры в Docker;
как осуществить запуск или остановить контейнер в Docker;
и др.
Контейнеризация — это уникальный способ запуска приложений. Контейнер полностью изолирован от других контейнеров и операционной системы. Таким образом, все что происходит внутри контейнера, остается в контейнере. Если программа, запущенная в контейнере, работает с ошибками или была взломана, тогда это никак не влияет на работу всей системы и других контейнеров. Таким образом, Docker позволяет на одном устройстве разворачивать и запускать несколько разных программ в безопасном режиме.
Как работает Docker
Docker изначально был разработан для операционной системы Linux и какое-то время входил в список предустановленных программ в дистрибутиве Red Hat. Контейнерная разработка при помощи Docker очень быстро завоевала популярность, поэтому постепенно эта программа перекочевала и на другие системы: Windows, MacOS, дата-центры, облачные системы и др.
Чем хорош Docker:
Каждый отдельный контейнер не требует много ресурсов от операционной системы. В этом плане он эффективнее, чем виртуальная машина.
Высокая скорость развертывания приложений. Нужно только инсталлировать и настроить Docker и больше никакого дополнительного программного обеспечения при запуске других программ в контейнерах. В Docker присутствует все, что нужно для запуска программ.
Контейнер — это изолированная среда. Поэтому в контейнере можно запускать потенциально опасный код, не боясь, что он как-то повлияет на операционную систему.
Удобное масштабирование проектов. Чтобы расширить какой-то проект, нужно добавить новый контейнер.
Рассмотрим как именно работает Docker. Что происходит при взаимодействии с этой программой:
Пользователь отдает команду через интерфейс о создании контейнера.
Запускается создание образа. Специальный инструмент проверяет, существует ли локально созданный образ. Если существует, тогда его помещает в контейнер. Если образа не существует, тогда образ скачивается со специального Docker-хранилища образов.
Исходя из образа создается контейнер.
При создании контейнера происходит разметка файловой системы и создается интерфейс управления контейнером.
Контейнеру присваивается собственный IP-адрес и он готов присвоить и запустить приложение.
Образ — это самодостаточная файловая система, которая применяется для запуска вашего приложения в контейнере. Образ можно создать и сконфигурировать самостоятельно, либо воспользоваться уже готовым, скачав его из Docker-хранилища.
Контейнер выглядит как «оболочка» для запуска образа и вашего приложения. Эта «оболочка» отделяет ваше приложение от всей операционной системы. Фактически, контейнер — это отдельно запущенный изолированный процесс в операционной системе вашего устройства. Вся прелесть контейнера в том, что внутри него уже установлены все зависимости для вашего будущего приложения, что гарантирует его 100%-ную работоспособность. При помощи Docker запуск приложения осуществляется в одну строчку и с гарантией запуска. В традиционном способе запуска приложения вам пришлось бы пройти определенные шаги, но в результате так и не получить гарантию запуска. Например:
инсталлировать необходимые зависимости под операционную систему вашего устройства;
скачать и распаковать архив приложения;
осуществить конфигурацию;
активировать компиляцию;
инсталлировать приложение.
Из описания видно, что традиционный процесс запуска приложения довольно длительный. Но самое важное, что на любом этапе может произойти непредвиденная ошибка, которая не даст запустить приложение.
Docker — это такая программа, о которой есть что сказать и говорить о ней можно очень долго. Установите Docker на свой компьютер и начните им пользоваться. Мы предлагаем вашему вниманию подборку команд для работы в Докер, которые обязательно вам пригодятся.
Основной список команд для Docker
Чуть ниже приведем список полезных команд для Docker. Важно отметить, что к контейнерам можно обращаться двумя способами:
по имени контейнера;
по ID контейнера.
Поэтому во всех командах, описанных ниже, можно подставлять либо имя, либо идентификатор контейнера.
Создать контейнер:
docker create -t -i <имя контейнера>
Первый запуск контейнера в Docker:
docker run -it <имя контейнера> -d
Переименовать контейнер:
docker rename <имя контейнера> <новое имя контейнера>
Удалить контейнер в Docker:
docker rm <имя контейнера>
Запуск остановленного контейнера в Docker:
docker start <имя контейнера>
Остановить контейнер в Docker:
docker stop <имя контейнера>
Поставить работу контейнера на паузу:
docker pause <имя контейнера>
Снять паузу с контейнера:
docker unpause <имя контейнера>
Посмотреть все работающие контейнеры:
docker ps
Посмотреть логи контейнера:
docker logs <имя контейнера>
Посмотреть сведения о контейнере:
docker inspect <имя контейнера>
Посмотреть события в контейнере:
docker events <имя контейнера>
Перезапуск контейнера Docker:
docker restart <имя контейнера>
Посмотреть список образов:
docker image
Удалить контейнер и его том в Docker:
docker rm -v <имя контейнера>
Удалить все остановленные контейнеры в Docker:
docker container prune
Удалить все неиспользуемые контейнеры, образы и тома в Docker:
docker system prume
Создать собственный образ:
docker build
Удалить образ:
docker rmi <имя образа>
Создать образ из контейнера:
docker commit <имя образа>
На этом команды в Docker не заканчиваются, но это основные, которые помогут начать работу с программой Docker.
Заключение
Docker завоевал собственную популярность за счет уникальных свойств, которые он предлагает при работе с контейнерами. Контейнерная разработка существовала задолго до того, как был придуман Docker, но она не была настолько легкой, как сейчас. Если для запуска собственных приложений вам приходится виртуализировать операционную систему, тогда попробуйте Docker и контейнеры и вы увидите насколько работа с контейнерами проще, чем виртуализация.
Другое