10 ключевых команд Docker в арсенал фронтенд-разработчиков



Книга 10 ключевых команд Docker в арсенал фронтенд-разработчиков

Поверьте опыту фронтенд-разработчика: умение работать с Docker упрощает процесс сборки, тестирования и развертывания веб-приложений.





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


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


Если хотите подкрепить теорию практическими примерами, клонируйте репозиторий GitHub по ссылке. Он содержит код для простого приложения React, созданного с помощью Vite.


В указанном демонстрационном репозитории Dockerfile дает инструкции Docker по созданию и запуску приложения React как статического сайта с использованием NGINX.


К делу!


1) docker build


Первая в списке обязательных для запоминания команд  —  docker build. Она создает образ Docker из Dockerfile, который представляет собой скрипт с инструкциями по созданию образа. 


Синтаксис для команды docker build выглядит так: 


docker build -t [image_name] [path/to/dockerfile]


Чтобы обратиться к примеру, переходим с помощью команды cd в корневую директорию проекта, в которой находится Dockerfile, и выполняем следующую команду: 


docker build -t my-app:v1 .


Аргумент -t (сокращенная форма от -tag) указывает для образа имя и необязательный тег, следующий за двоеточием. 


Как правило, теги нужны для различения версий образа. Если опустить тег в команде docker build -t my-app и выполнить ее в таком виде, то образ автоматически получит тег latest, т.е. самый последний.


2) docker images


Команда docker images выводит список всех Docker-образов, созданных локально. 


Выполнив эту команду, вы увидите в списке образ my-app. Обратите внимание, что команда docker images аналогична docker image ls.


3) docker run


После создания образа нужно его запустить. Для этого потребуется команда docker run, синтаксис которой представлен ниже: 


docker run -p <host_port>:<container_port> [image_name]


Например, запустим контейнер для образа с тегом my-app:v1 и получим к нему доступ через порт 80. Для этого выполняем: 


docker run -p 80:80 my-app:v1


Данный пример подразумевает, что Dockerfile открывает приложение на порту 80. Для сопоставления с другим портом хоста следует указать соответствующий номер в первой части аргумента -p.


Обратите внимание, что эта команда заблокирует окно терминала для выполняющегося процесса. Для запуска контейнера в фоновом режиме следует добавить аргумент -d, как показано ниже: 


docker run -d -p 80:80 my-app:v1


Команда возвращает id контейнера и передает контроль над окном терминала. 


При запуске контейнера Docker присваивает ему произвольное имя, допустим happy-einstein. Добавляя аргумент --name, можно указать свой вариант имени. 


Например, присвоим контейнеру, запускающему образ my-app, имя vite-app:


docker run -d -p 80:80 --name vite-app my-app:v1


4) docker ps


Команда docker ps предоставляет список всех запущенных в данный момент контейнеров. 


Если вы выполняли все предыдущие команды, то увидите в списке контейнер my-app, а также его id и имя образа. 


5) docker start/stop


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


docker start|stop <container_name> (or <container_id>)


В нашем случае останавливаем контейнер vite-app командой: 


docker stop vite-app


А для повторного запуска выполняем:


docker start vite-app


Примечание: как только контейнер прекращает работу, он более не отображается в списке запущенных контейнеров (docker ps). Но его по-прежнему можно увидеть в общем списке, если выполнить команду docker ps --all, которая показывает все работающие и остановленные контейнеры.  


6) docker logs


Для просмотра логов запущенного контейнера используется команда docker logs, синтаксис которой: 


docker logs [container_name]


Например, для просмотра логов контейнера vite-app воспользуемся командой: 


docker logs vite-app


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


7) docker exec


Рассмотрим еще одну полезную команду: docker exec. Она позволяет выполнять команды внутри запущенного контейнера. 


Синтаксис команды docker exec следующий: 


docker exec -it [container_name] [command_to_run]


Например, откроем оболочку внутри контейнера vite-app


docker exec -it vite-app sh


Примечание: для выхода из интерактивной оболочки следует ввести exit


8) docker login


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


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


Другие облачные провайдеры, такие как AWS, Azure и GCP, предоставляют приватные реестры контейнеров, позволяющие пользователям хранить свои образы и управлять ими.


При наличии аккаунта вход в Docker Hub осуществляется командой docker login -u <username>


Как правило, крупные облачные провайдеры предоставляют собственные CLI для доступа в свои реестры контейнеров. За более подробной информацией по данной теме можно обратиться к их документации. 


9) docker push


Команда docker push отправляет образ в Docker Hub. Ее синтаксис выглядит так:


docker push <username>/<image_name>


Обратите внимание, что Docker Hub подразумевает именование образа в следующем формате: имя пользователя Docker Hub, затем / и уникальное имя образа. 





При создании Docker-образа действует стандартное соглашение: 


docker build -t <username>/<image_name>:<tag_name>


Например, задумай я создать образ для личного аккаунта Docker Hub, то воспользовался бы такой командой: 


docker build -t matttburrellnet/vite-app:v1


Docker Hub автоматически отметит образ с именем vite-app как v1


10) docker pull


После входа в реестр контейнеров вы можете скачивать существующие образы командой docker pull, синтаксис которой: 


docker pull mattburrellnet/vite-app:v1


Если у вас есть опыт работы с Git, то заметите сходство в алгоритмах работы по отправке (push) и извлечению (pull) образов. 


Заключение 


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


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



270   0  

Comments

    Ничего не найдено.