Докер

Як працює Dockerfile?

Як працює Dockerfile?
Ви можете розгорнути лише один контейнер за допомогою образу докера. Однак якщо вам потрібно розгорнути кілька контейнерів (кожен для різних завдань) з одного образу, то що буде? Ви можете вирішити це за допомогою dockerfile.

Dockerfile - це простий текстовий файл, який містить усі команди, які користувач може викликати в командному рядку для складання або побудови образу. За допомогою збірки docker ви можете легко автоматизувати збірку, яка виконує декілька команд, визначених у файлі docker, послідовно.

Наприклад, ви хочете завантажити образ докера з центру докера для своїх конкретних потреб у розробці. Потім ви хочете оновити образ, встановити деякі пакети для вашого процесу розробки. У цьому випадку ви можете створити файл docker, включити всі параметри для своїх конкретних потреб та створити власний образ. Після створення докер-файлу ви можете використовувати його знову і знову для створення одного і того ж образу, не встановлюючи вручну всі необхідні пакети для вашого процесу розробки.

Dockerfile Basic

Перш ніж працювати з dockerfile, якщо важливо знати, як створити dockerfile. Файл Docker містить конкретні ключові слова, за якими можна створити певний образ. Коротке пояснення всіх ключових слів, що використовуються у файлі docker, наведено нижче:

Створення файлу Docker

У цьому розділі ми створимо файл docker для створення образу сервера LAMP із базового образу Ubuntu.

По-перше, вам потрібно буде створити каталог для зберігання докер-файлу. Ви можете створити його за допомогою такої команди:

mkdir LAMP

Далі створіть каталог з іменем Dockerfile всередині каталогу:

nano LAMP / Dockerfile

Додайте такі рядки:

ІЗ ubuntu: остання
ТЕХНІЧНИЙ ХІТЕШ ДЖЕТВА
ENV DEBIAN_FRONTEND = неінтерактивний
ЗАПУСКАТИ apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-загальний php-mysql php-json php-curl -y
CMD ["apachectl", "- D", "FOREGROUND"]
ЕКСПОЗИЦІЯ 8080

Збережіть і закрийте файл, коли закінчите.

Створення зображення за допомогою Dockerfile

Після створення Dockerfile ви можете легко створити власний образ LAMP за допомогою Dockerfile.

Спочатку змініть каталог на LAMP і запустіть таку команду, щоб побудувати зображення з цього файлу:

CD LAMP
docker build -t "лампа: файл Docker".

Вищевказана команда розпочне завантаження останнього образу Ubuntu з Docker Hub та встановить необхідні пакети, зазначені в Dockerfile. Після успішного створення зображення ви побачите такий результат:

Надсилання контексту побудови до демона Docker 2.048кБ
Крок 1/6: ІЗ ubuntu: остання
остання: Витягування з бібліотеки / ubuntu
54ee1f796a1e: Потягніть завершено
f7bfea53ad12: Потягніть завершено
46d371e02073: Витягніть завершено
b66c17bbf772: Потягніть завершено
Дайджест: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Статус: Завантажено нове зображення для ubuntu: останнє
---> 4e2eef94cd6b
Крок 2/6: ОБСЛУГОВУВАЧ Хітеш Джетва
---> Запуск у 047977af2c2a
Зняття проміжного контейнера 047977af2c2a
---> 1331df625c4c
Крок 3/6: ENV DEBIAN_FRONTEND = неінтерактивний
---> Запуск у 3597152c7a1b
Зняття проміжного контейнера 3597152c7a1b
---> 86c82c95e75d
Крок 4/6: ЗАПУСКАТИ apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-загальний php-mysql php-json php-curl -y
Зняття проміжного контейнера 322532299fd9
---> f6897a9554f7
Крок 5/6: CMD ["apachectl", "- D", "FOREGROUND"]
---> Запуск у 669635bc8bcb
Зняття проміжного контейнера 669635bc8bcb
---> e8400eb2e677
Крок 6/6: ВИДАЙТЕ 8080
---> Запуск у 937ae2b2d305
Зняття проміжного контейнера 937ae2b2d305
---> 2123a857361d
Успішно побудований 2123a857361d
Лампа успішно позначена: Dockerfile

Тепер ви можете перерахувати щойно створений образ, виконавши таку команду:

зображення докера

Ви повинні побачити такий результат:

СТВОРЕНИЙ РОЗМІР ІДЕНТИФІКАЦІЇ ЗОБРАЖЕННЯ ТЕГУ РЕПОЗИТОРІЇ
лампа Dockerfile 2123a857361d 44 секунди тому 520MB
ubuntu остання 4e2eef94cd6b 8 днів тому 73.9 Мб

Тепер у вас є власний образ сервера LAMP у вашій руці. Ви також можете переглянути історію кожної команди за допомогою такої команди:

лампа історії докера:

Ви повинні побачити такий результат:

ЗОБРАЖЕННЯ СТВОРЕНО, СТВОРЕНО ЗА РОЗМІРОМ КОМЕНТАРОМ
2123a857361d 16 хвилин тому / bin / sh -c # (nop) EXPOSE 8080 0B
e8400eb2e677 16 хвилин тому / bin / sh -c # (nop) CMD ["apachectl" "-D" "FO… 0B
f6897a9554f7 16 хвилин тому / bin / sh -c apt-get update -y && apt-get inst… 446MB
86c82c95e75d 17 хвилин тому / bin / sh -c # (nop) ENV DEBIAN_FRONTEND = nonin… 0B
1331df625c4c 17 хвилин тому / bin / sh -c # (nop) MAINTAINER Hitesh Jethva 0B
4e2eef94cd6b 8 днів тому / bin / sh -c # (nop) CMD ["/ bin / bash"] 0B

Створення контейнера із зображення LAMP

Тепер ви можете запустити контейнер із вашого зображення, використовуючи таку команду:

docker run -dit lamp: Dockerfile

Після запуску контейнера ви побачите такий результат:

0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208

Ви можете перевірити запущений контейнер, використовуючи таку команду:

докер ps

Ви повинні отримати наступний результат:

КОМАНДА ІДЕНТИФІКАЦІЯ ЗОБРАЖЕННЯ СТВОРЕНИЙ СТАТУС ПОРТИ НАЗВИ
c14794784eb2 лампа: Dockerfile "apachectl -D FOREGR…" 2 хвилини тому Вгору 2 хвилини 0.0.0.0: 8080-> 8080 / tcp quirky_ramanujan

Висновок

У цьому посібнику ви дізналися, що таке Dockerfile та як створити образ Docker за допомогою Dockerfile. Це дуже корисно для створення власних зображень, а не для внесення змін у витягнуте зображення.

5 найкращих аркадних ігор для Linux
В наш час комп’ютери - це серйозні машини, що використовуються для ігор. Якщо ви не можете отримати новий високий бал, ви зрозумієте, що я маю на уваз...
Битва за Веснот 1.13.6 Розробка випущена
Битва за Веснот 1.13.6, випущений минулого місяця, є шостим випуском розробки в 1.13.x, і це забезпечує низку вдосконалень, особливо до інтерфейсу кор...
Як встановити League of Legends на Ubuntu 14.04
Якщо ви шанувальник League of Legends, то це можливість для вас тестувати League of Legends. Зверніть увагу, що LOL підтримується на PlayOnLinux, якщо...