Dockerfile — это простой текстовый файл, содержащий все команды, которые пользователь может вызвать в командной строке для сборки или создания образа. С помощью сборки докеров вы можете легко автоматизировать сборку, которая последовательно запускает несколько команд, определенных в файле докеров.
Например, вы хотите загрузить образ докера из концентратора докеров для вашей конкретной разработки потребности. Затем вы хотите обновить образ, установить несколько пакетов для процесса разработки. В этом случае вы можете создать файл докеров, включить все параметры для ваших конкретных нужд и создать свой собственный образ. После создания файла докеров вы можете использовать его снова и снова для создания одного и того же образа, не устанавливая вручную все необходимые пакеты для процесса разработки.
Dockerfile Basic
Перед работой с dockerfile, если важно знать, как создать dockerfile. Dockerfile включает определенные ключевые слова, которые можно использовать для создания определенного образа. Краткое объяснение всех ключевых слов, используемых в файле докеров, приведено ниже:
- FROM : используется для определения базового образа, на котором мы будем строить.
- ADD : он используется для добавления файлов в создаваемый контейнер. Проще говоря, RUN используется для запуска команд и фиксации результата.
- RUN : он используется для добавления слоев к базовому образу путем установки компонентов.
- CMD : используется для запуска команд в начале контейнера. Эти команды выполняются только в том случае, если при запуске контейнера не указан аргумент.
- ENTRYPOINT : он используется для выполнения команд во время процесса инициализации контейнера. Вы должны использовать ENTRYPOINT в своем док-файле, если хотите автоматически запускать контейнер после создания изображения.
- ENV : он используется для определения переменных среды в время выполнения контейнера.
- EXPOSE : используется для указания порта прослушивания для включения сети во время выполнения.
- MAINTAINER : используется для указания имени и идентификатора электронной почты создателя изображения.
- ПОЛЬЗОВАТЕЛЬ : используется для указания имя пользователя, используемое для запуска контейнера.
- VOLUME : используется для разрешения доступа из контейнера к каталогу на хосте Docker.
- WORKDIR : используется для указания пути к команде, которая будет выполняться во время выполнения.
- LABEL : Он используется для добавления меток к образу докера.
Создание файла Docker
В этом разделе мы создадим файл докера для создания Образ сервера LAMP из базового образа Ubuntu.
Во-первых, вам нужно создать каталог для хранения файла докеров. Вы можете создать его с помощью следующей команды:
Затем создайте каталог с именем Dockerfile внутри каталога:
Добавьте следующие строки:
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 и выполните следующую команду для создания образа из этого файла:
docker build -t «lamp: Dockerfile».
Приведенная выше команда начнет загрузку Ub Untu последний образ из Docker Hub и установил необходимые пакеты, указанные в Dockerfile. После успешной сборки образа вы должны увидеть следующий результат:
Шаг 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
Теперь вы можете перечислить свои заново создайте образ, выполнив следующую команду:
Вы должны увидеть следующий результат:
lamp Dockerfile 2123a857361d 44 секунды назад 520 МБ
ubuntu latest 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
Создание контейнера fr om LAMP Image
Теперь вы можете запустить контейнер из вашего образа, используя следующую команду:
После запуска контейнера вы должны увидеть следующий результат:
Вы можете проверить работающий контейнер с помощью следующей команды:
Вы должны получить следующий вывод:
c14794784eb2 lamp: Dockerfile «apachectl -D FOREGR…» 2 минуты назад На 2 минуты выше 0.0.0.0:8080- > 8080/tcp quirky_ramanujan
Заключение
В этом руководстве вы узнали, что такое Dockerfile и как создать образ докера с помощью Dockerfile. Это очень полезно для создания ваших пользовательских изображений вместо фиксации изменений в извлеченном изображении.