Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 9930|Отговор: 2

Разлика между dockerfile и docker-compose

[Копирай линк]
Публикувано в 15.11.2019 г. 9:33:13 ч. | | |
Разлика между dockerfile и docker-compose
Нека накратко разберем процеса на използване на docker, който е разделен на създаване на изображения и стартиране на контейнери.

Конструиране на изображение: тоест създаване на образ, който съдържа средата, програмния код и т.н., необходими за инсталация и работа. Този процес на създаване се извършва с помощта на dockerfile.

Стартиране на контейнер: Контейнерът накрая се изпълнява чрез изтегляне на изградения образ и стартиране на услугата чрез серия от изпълняващи се инструкции (като картографиране на портове, монтиране на външни данни, променливи на околната среда и др.). За един контейнер това може да се изпълнява чрез docker run.

Ако включва изпълнение на множество контейнери (като оркестрация на услуги), може да се реализира чрез docker-compose, който лесно може да изпълнява множество контейнери като услуга (разбира се, само един от тях) и осигурява функцията за мащабиране (мащабиране на услугите).

Кратко резюме:

1.dockerfile: създай изображението;

2. Docker run: стартирайте контейнера;

3. docker-compose: Стартирай услугата;

Започни отначало.
Ако не използвате Docker, как се изгражда WordPress? Първо намери сървър, приеми, че операционната му система е Ubuntu, и след това следвай документацията, стъпка по стъпка, за да напишеш командата и да напишеш конфигурацията, нали?
А какво да кажем за използването на docker? Просто намери сървър, независимо от операционната система, стига да поддържа docker, docker да работи Ubuntu, docker ще изтегли най-новия образ на Ubuntu от официалния източник, можеш да го мислиш като отваряне на виртуална машина на Ubuntu и след това да я инсталираш стъпка по стъпка, точно както по-горе.

Въпреки това, тази инсталация има значителен недостатък: след като контейнерът бъде изтрит, не се извършва никаква работа. Разбира се, можете да използвате docker commit, за да го запазите като изображение, така че да може да се използва повторно.

Но изображението обикновено е голямо и ако споделите само изображението, другите няма да знаят какво съдържа, което не е благоприятно за споделяне и повторна употреба.
Интуитивно решение е да напишете скрипт, който да записва целия процес на инсталация, така че при повторна инсталация да можете да изпълните скрипта. Dockerfile е един такъв скрипт, който документира процеса на създаване на изображение.
С Dockerfile просто стартирай docker build. Можеш да създадеш изображение, а Dockerfile е текстов файл, който е много лесен за модифициране.

Сега, когато имате WordPress образ, просто трябва да пуснете docker run, за да стартирате WordPress.

Ако е само WordPress, това е достатъчно. Но често са нужни няколко изображения, за да стартирате услуга, като nginx, mysql, mail service и др.
По-често nginx, mysql и smtp са всички изображения, и тези изображения работят заедно, за да служат на проект.
Docker-compose е решението на този проблем. В docker-compose.yml е включена информация за това кои изображения са ви нужни, как да конфигурирате всяко изображение, кои обеми да монтирате и т.н.
За да стартирате услуга, трябва само да направите docker-compose up и само docker-compse stop/down, за да я спрете

Накратко, Dockerfile записва процеса на изграждане на едно изображение, docker-compse.yml записва процеса на изграждане на проект (обикновено няколко изображения).

Казахте, че някои уроци използват dockerfile+docker-compose, защото самият docker-compose.yml няма информация за изграждането на образа, и ако образът е изваден от docker регистъра, тогава dockerfile не е необходим; Ако образът трябва да бъде създаден, тогава трябва да се предостави Dockerfile.

Docker-composeТова е контейнер за оркестрация. Например, имате php изображение, mysql изображение и nginx изображение. Ако няма docker-compose, всеки път при стартиране трябва да въведеш параметрите за стартиране на всеки контейнер, променливи на средата, името на контейнера, да зададеш параметрите на връзката на различните контейнери и серия от операции, което е доста тромаво. След като използвате docker-composer, можете да напишете тези команди в docker-composer.yml файл наведнъж и всеки път, когато стартирате цялата среда (включително 3 контейнера), трябва само да напишете команда docker-composer up.

dockerfileРолята е да се изгради огледален образ от нулата. Той съдържа средата, програмния код и други, необходими за инсталация и експлоатация. Този процес на създаване се извършва с помощта на dockerfile. Dockerfile - Подготвен за командата docker build за създаване на самостоятелен образ, който може да се използва и в docker-compose за live build
docker-compose.yml - Скрипт за docker-compose, който може да управлява няколко контейнера едновременно, включително връзки между тях, независимо дали да се изгражда с официален образ или със себе си, различни дефиниции на мрежови портове, дефиниции на пространство за съхранение и др.




Предишен:Не успях да регистрирам URL "http://xx/" за сайта "ИМЕ НА МЯСТО"...
Следващ:Docker съхранява местоположението на изображението под системата Windows
 Хазяин| Публикувано в 18.12.2022 г. 14:56:50 ч. |
centos инсталация Docker Compose tutorial
https://www.itsvse.com/thread-5164-1-1.html
 Хазяин| Публикувано в 5.03.2025 г. 10:37:33 ч. |
BuildKit е подобрен бекенд, който заменя наследения билдър. Започвайки с версия 23.0, BuildKit е стандартният билдър за потребителите на Docker Desktop и Docker Engine.

Входът към хиперлинк е видим.
Входът към хиперлинк е видим.
Входът към хиперлинк е видим.

Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com