Docker
Docker е популярен инструмент за контейнеризиране с отворен код, използван за предоставяне на преносима и последователна среда за изпълнение на софтуерни приложения, като същевременно консумира по-малко ресурси от традиционен сървър или виртуална машина. Docker използва контейнери, среди с изолирано потребителско пространство, които работят на ниво операционна система и споделят системни ресурси като ядрото и файловата система
Docker улеснява ПАКЕТИРАНЕТО, ДОСТАВЯНЕТО и ИЗПЪЛНЕНИЕТО на приложенията. Пакетирането представлява, поставяне на едно място всички необходими ресурси за приложението. Това позволява приложението да бъде лесно преносимо на различни среди, коiто изпълняват Docker контейнери. Фазите за проектиране на софтуер включват “дизайн”, “тестване”, “поддръжка”, “deployment”, Docker намира приложение най-често в етапа “deployment”, но може да се ползва за подобряване на процеса по разработка.
Docker image
Docker image е шаблон или снимка, която съдържа всички необходими компоненти за изпълнение на дадено приложение, като операционна система, библиотеки, приложения и файлове за конфигурация. Това е статичен образ, който се използва за създаване на Docker контейнери. Docker image може да бъде създаден от потребител или да бъде изтеглен от чентрално хранилище като Docker Hub. Docker image е безсъстоятелен и не може да бъде променян след създаването му.
Docker container
Docker контейнер е инстанция, която се базира на Docker image. Той представлява изпълнима среда, която може да бъде стартирана и изпълнена във всяка Docker поддръжкаща система. Контейнерът съдържа работещо копие на Docker image, като добавя състояние (например временни файлове или изменения във файловата система), което може да бъде изменяно по време на изпълнение. Docker контейнерите са леки, портативни и могат да бъдат много бързо стартирани и спрени. Всеки контейнер работи в изолирано пространство, като споделя ядрото на хост операционната система, но има своя собствена файлова система, процеси, мрежа и други ресурси.
Docker Volumes
Docker Volume е механизъм за постоянно съхранение на данни извън контейнера. Той позволява данните да останат запазени и след изтриване на контейнера. Това е полезно за съхранение на данни като бази данни, конфигурационни файлове и други, които се нуждаят от постоянност. Docker volume се използва за създаване на “мост” между файловата система на хоста и контейнера, като по този начин осигурява постоянство на данните дори след прекратяване на жизнения цикъл на контейнера.
Dockerfile
Dockerfile е текстови файл, който съдържа инструкции за създаване на Docker image. Този файл дефинира всички стъпки и команди, необходими за създаване на образ, който след това може да бъде използван за създаване на Docker контейнери. Dockerfile съдържа инструкции като указва какъв базов образ да се използва, какви файлове да се копират в образа, какви команди да се изпълнят по време на създаването на образа и други конфигурационни настройки.
Docker compose
Docker Compose е инструмент, който позволява дефинирането и управлението на множество контейнери за Docker приложения. Той използва YAML файлове за дефиниране на настройките за всеки контейнер и връзките между тях. С Docker Compose можете да описвате аспекти като образи, мрежи, общи томове и други конфигурационни настройки, които са необходими за вашите приложения.
Основните предимства на Docker Compose включват:
Дефиниция на инфраструктура като код (IaC): Docker Compose ви позволява да дефинирате цялата инфраструктура на вашето приложение в един YAML файл, който е лесен за разбиране и поддръжка.
Лесно стартиране и спиране на приложенията: С Docker Compose можете лесно да стартирате и спирате цялото си приложение с една команда.
Дефиниране на връзки между контейнери: Docker Compose ви позволява да дефинирате връзките между различните контейнери във вашия проект, като по този начин лесно можете да управлявате комуникацията между тях.
Управление на общи томове и мрежи: Docker Compose ви позволява да дефинирате общи томове и мрежи за вашите контейнери, което е полезно при споделяне на данни или настройки между различни контейнери.
С Docker Compose вие можете лесно да стартирате и управлявате цялата инфраструктура на вашето приложение с минимално усилие, което го прави изключително полезен инструмент за разработка и разграждане на Docker приложения.