Как работает Dockerfile?

Вы можете развернуть только один контейнер с помощью образа докера. Однако, если вам нужно развернуть несколько контейнеров (каждый для разных задач) из одного образа, что тогда произойдет? Вы можете решить эту проблему с помощью файла dockerfile.

Dockerfile — это простой текстовый файл, содержащий все команды, которые пользователь может вызвать в командной строке для сборки или создания образа. С помощью сборки докеров вы можете легко автоматизировать сборку, которая последовательно запускает несколько команд, определенных в файле докеров.

Например, вы хотите загрузить образ докера из концентратора докеров для вашей конкретной разработки потребности. Затем вы хотите обновить образ, установить несколько пакетов для процесса разработки. В этом случае вы можете создать файл докеров, включить все параметры для ваших конкретных нужд и создать свой собственный образ. После создания файла докеров вы можете использовать его снова и снова для создания одного и того же образа, не устанавливая вручную все необходимые пакеты для процесса разработки.

Dockerfile Basic

Перед работой с dockerfile, если важно знать, как создать dockerfile. Dockerfile включает определенные ключевые слова, которые можно использовать для создания определенного образа. Краткое объяснение всех ключевых слов, используемых в файле докеров, приведено ниже:

  • FROM : используется для определения базового образа, на котором мы будем строить.
  • ADD : он используется для добавления файлов в создаваемый контейнер. Проще говоря, RUN используется для запуска команд и фиксации результата.
  • RUN : он используется для добавления слоев к базовому образу путем установки компонентов.
  • CMD : используется для запуска команд в начале контейнера. Эти команды выполняются только в том случае, если при запуске контейнера не указан аргумент.
  • ENTRYPOINT : он используется для выполнения команд во время процесса инициализации контейнера. Вы должны использовать ENTRYPOINT в своем док-файле, если хотите автоматически запускать контейнер после создания изображения.
  • ENV : он используется для определения переменных среды в время выполнения контейнера.
  • EXPOSE : используется для указания порта прослушивания для включения сети во время выполнения.
  • MAINTAINER : используется для указания имени и идентификатора электронной почты создателя изображения.
  • ПОЛЬЗОВАТЕЛЬ : используется для указания имя пользователя, используемое для запуска контейнера.
  • VOLUME : используется для разрешения доступа из контейнера к каталогу на хосте Docker.
  • WORKDIR : используется для указания пути к команде, которая будет выполняться во время выполнения.
  • LABEL : Он используется для добавления меток к образу докера.

Создание файла Docker

В этом разделе мы создадим файл докера для создания Образ сервера LAMP из базового образа Ubuntu.

Во-первых, вам нужно создать каталог для хранения файла докеров. Вы можете создать его с помощью следующей команды:

mkdir LAMP

Затем создайте каталог с именем Dockerfile внутри каталога:

nano LAMP/Dockerfile

Добавьте следующие строки:

FROM ubuntu: последний
MAINTAINER Hitesh Jethva
ENV DEBIAN_FRONTEND = noninteractive
RUN apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod- php php php-cli php-common php-mysql php-json php-curl -y
CMD [«apachectl», «- D», «FOREGROUND»]
EXPOSE 8080

Сохраните и закройте файл, когда закончите.

Создание образа с помощью Dockerfile

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

Сначала измените каталог на LAMP и выполните следующую команду для создания образа из этого файла:

cd LAMP
docker build -t «lamp: Dockerfile».

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

Отправка контекста сборки демону Docker 2. 048kB
Шаг 1/6: ИЗ ubuntu: latest
latest: Извлечение из библиотеки/ubuntu
54ee1f796a1e: Извлечение завершено
f7bfea53ad12: Извлечение завершено
46d371e02073: Извлечение завершено
b66c17bbf772: Извлечение завершено
Дайджест: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5

br br> Шаг 2/6: ОБСЛУЖИВАНИЕ Hitesh Jethva
—> Запуск в 047977af2c2a
Удаление промежуточного контейнера 047977af2c2a
—> 1331df625c4c
Шаг 3/6 : ENV DEBIAN_FRONTEND = noninteractive
—> Запуск в 3597152c7a1b
Удаление промежуточного контейнера 3597152c7a1b
—> 86c82c95e75d
Шаг 4/6: RUN apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y

Удаление промежуточного контейнера 322532299fd9
—> f6897a9554f7
Шаг 5/6: CMD [«apachectl», «- D», «FOREGROUND»]
—> Выполняется в 669635bc8bcb
Удаление промежуточного контейнера 669635bc8bcb
—> e8400eb2e677
Шаг 6/6: EXPOSE 8080
—> Запуск в 937ae2b2d305
Удаление промежуточного контейнера 937ae2b2d305
—> 2123a857361d
Успешно построено 2123a857361d
Лампа с успешным тегом: Dockerfile

Теперь вы можете перечислить свои заново создайте образ, выполнив следующую команду:

docker images

Вы должны увидеть следующий результат:

ТЕГ РЕПОЗИТОРА ИДЕНТИФИКАТОР ИЗОБРАЖЕНИЯ СОЗДАННЫЙ РАЗМЕР

lamp Dockerfile 2123a857361d 44 секунды назад 520 МБ

ubuntu latest 4e2eef94cd6b 8 дней назад 73.9 МБ

Теперь у вас в руках собственный образ сервера LAMP.. Вы также можете просмотреть историю каждой команды с помощью следующей команды:

индикатор истории докеров: Dockerfile

Вы должны увидеть следующий вывод:

ИЗОБРАЖЕНИЕ СОЗДАНО КОММЕНТАРИЙ РАЗМЕРА
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

Создание контейнера fr om LAMP Image

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

docker run -dit lamp: Dockerfile

После запуска контейнера вы должны увидеть следующий результат:

0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208

Вы можете проверить работающий контейнер с помощью следующей команды:

docker ps

Вы должны получить следующий вывод:

ИДЕНТИФИКАТОР КОНТЕЙНЕРА КОМАНДА ИЗОБРАЖЕНИЯ СОЗДАНО СОСТОЯНИЕ ИМЕНА ПОРТОВ
c14794784eb2 lamp: Dockerfile «apachectl -D FOREGR…» 2 минуты назад На 2 минуты выше 0.0.0.0:8080- > 8080/tcp quirky_ramanujan

Заключение

В этом руководстве вы узнали, что такое Dockerfile и как создать образ докера с помощью Dockerfile. Это очень полезно для создания ваших пользовательских изображений вместо фиксации изменений в извлеченном изображении.

Оцените статью
nanomode.ru
Добавить комментарий