Docker. Часть 1. Основные понятия 👩💻
Docker — это клиент-серверное ПО, написанное на Go, позволяющее упаковывать и запускать приложения в контейнере.
Сервер Docker — это демон dockerd. Он выполняет основную работу с образами, контейнерами, сетями и томами.
Клиент — интерфейс командной строки (CLI). Взаимодействует с демоном посредством API.
Клиент и демон могут находиться на одной машине или удаленно.
Подробнее про образы и контейнеры.
Образ — это основа для создания контейнера. Он создается из Dockerfile и доступен только для чтения. Образ имеет слоистую структуру, он собирается из инструкций в Dockerfile — каждая последующая инструкция создает новый слой. Образы можно создавать самостоятельно из базовых образов (например, node), доступных в реестрах, таких как Docker Hub.
Основные команды для работы с образами:
docker build [path/url] #сборка образа
docker images #список образов
docker rmi [image] #удалить образ
Контейнер — это доступный чтения и записи экземпляр образа. Его можно создать, запустить, остановить или удалить. Нужно понимать, что контейнеры не могут хранить состояние — при их удалении данные уничтожаются. Для решения этой проблемы используют тома, но о них позже.
Основные команды для работы с контейнерами:
docker run [image] #запуск контейнера
-d — запуск в фоновом режиме
-e, --env — установить переменные среды
-i — в интерактивной режиме
-t — запуск терминала
--name — присвоить имя контейнеру
-p — проброс портов
--rm — автоматическое удаление контейнера после остановки
docker stop [container] #остановка контейнера
docker exec [container] [command] #запустить команду в работающем контейнере
docker logs [container] #просмотр логов контейнера
-f — прослушивание логов в онлайн режиме
docker ps #список работающих контейнеров
-а — все контейнеры
docker start [container] #запуск контейнера
docker restart [container] #перезапуск контейнера
docker rm [container] #удаление контейнера
docker stop [container] #остановка контейнера
Linux | Automation | Network | DevOps 👍
#Docker