Docker
Что это
Docker - программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой
контейнеризации, контейнеризатор приложений.
Как работает
DockerFile (build)-> Image (run)-> Container
Преимущество
- Портативности - контейнер может работать в любой системе которая его поддерживает.
- Изоляция - все приложения и зависимости изолированы.
- Последовательность - необходимый нам сценарий запуска приложения(связей и зависимостей).
- Масштабируемость - можно масштабировать горизонтально.
- Ресурсоэффективность - из-за совместного использования ресурсов ОП хоста, Docker легче чем VM.
- DevOps и цикл разработки - CI/CD и автоматическое развертывание.
Основные сущности:
- image - образ скачивается из Docker Hub или создаётся.
- container - создается с образа командой "run".
- DockerFile - txt файл с последовательными шагами для создания образа докера.
- Docker Compose - используется для одновременного управления несколькими контейнерами, входящими
в состав приложения.
Есть образы и контейнеры. Образ скачивается или создаётся. А после команды "run" с параметрами, будет
создан контейнер.
Docker File commands
- FROM - указывает какой базовый образ использовать.
- RUN - выполняет команды внутри контейнера.
- WORKDIR - изменяет активный каталог.
- USER - изменяет активного пользователя для следующих команд.
- EXPOSE - указывает какой порт нужно отображать вне контейнера.
- CMD - указывает команду для выполнения при запуске контейнера.
Основные терминальные команды
default
- docker --version - проверка версии.
image
- docker images - получить список всех скачанных образов.
- docker pull - загрузка образа из Docker Hub. Пример: docker pull postgres.
- docker build - собирает образ из Docker File.
- docker rmi - удаляет образ.
container
- docker ps - (process status) получить список всех запущенных контейнеров. Параметр "-a" покажет и незапущенные.
- docker run - запускаем контейнер. Пример: docker run --name test-db -p 5432:5432 -e POSTGRES_USER=test_user -e POSTGRES_PASSWORD=password -e POSTGRES_DB=testdb -d postgres:16
- docker stop - останавливает контейнер. Мягкая остановка.
- docker kill - «убивает» контейнер. Грубая остановка.
- docker rm - удаляет контейнер по id.
- docker logs - смотрим логи.
- docker volume ls - список томов.
docker-compose
- docker-compose up -d - запуск docker-compose.