Понимание Dockerfiles: строительство и применение
DockerFile — это сценарий, который автоматизирует создание изображений Docker, необходимое для строительства контейнеров. Ключевые разделы включают в себя указание базового изображения (от), выполнения команд (запуск), копирование файлов (копирование), обнаружение портов и установку переменных среды. Использование DockerFiles повышает эффективность, повторную использование и стандартизацию в создании изображений.
Чтобы построить Dockerfile, создайте каталог и определите конкретные ключевые слова, как из, запуска и сопровождающего. Например, базовый DockerFile для обновления изображения Ubuntu включает в себя команды для обновления пакетов и установку сборки.
После создания DockerFile постройте изображение, используя команду Docker Build -t «Имя: DockerFile» (где имя -это имя, которое вы хотите использовать). Этот процесс позволяет эффективно управлять несколькими вариациями контейнеров, упрощая развертывание с одного изображения.
Обзор
DockerFile — это текстовый файл, который содержит инструкции по созданию и настройке изображения в Docker. Он используется для автоматизации процесса создания контейнера с нуля, используя различные слои для создания конечного изображения. Dockerfiles обычно содержит следующие разделы:
От: Эта линия указывает базовое изображение, которое будет построено ваше новое изображение.
Запустить или команду: Эти строки запускают команды в процессе сборки, такие как установка зависимости или установка переменных среды.
Копия: Эта инструкция копирует файлы из текущего каталога в контейнер в определенном месте.
Открытый порт: Эта строка указывает, какие порты будут выставлены, когда изображение будет создано и запускается в контейнерах.
Переменные среды: Эти строки устанавливают переменные среды для использования вашего приложения.
Использование DockerFiles имеет несколько преимуществ, включая эффективное создание изображений, возможности повторного использования, портативность, стандартизацию, более быстрый процесс сборки и лучшие тестирование.
В этой статье вы узнаете основы Dockerfile, как построить Dockerfile, как построить изображение Docker из Dockerfile и как развернуть контейнеры с помощью DockerFile.
Используя изображение Docker, можно не только развернуть один контейнер за другим, это довольно просто. После того, как вы вытащили изображение из реестра (например, Docker Hub), каждый контейнер может быть развернут с помощью одной команды Docker. Но что происходит, когда вам нужно развернуть многочисленные контейнеры (каждая для разных целей) с одного и того же изображения? Внезапно управление этими контейнерами может стать немного громоздким.
Скажите, например, вы снимаете новейшее изображение Ubuntu для разработки. Прежде чем вы сможете разработать с этим контейнером, есть ряд модификаций, которые вы хотите внести в изображение (например, обновление программного обеспечения и добавление необходимых пакетов разработки для работы под рукой).
Для этого вы можете вручную редактировать каждое изображение по мере необходимости (создавая новое изображение для каждого необходимого вариации на тему), или вы можете построить DockerFile для каждого вариации. После того, как у вас построены основы DockerFile, вы можете быстро создавать одно и то же изображение снова и снова, не тратя время, чтобы сделать это вручную. Тщательно изготовленные Dockerfiles могут сэкономить вам значительное время и усилия.
Я хочу провести вас через процесс использования Dockerfile. Я продемонстрирую, используя последнее изображение Ubuntu, обновляя и обновляя это изображение, а затем установив настройку пакета. Это будет довольно простой DockerFile, но вы можете легко опираться.
Основы Dockerfile
Прежде чем мы построем наш Dockerfile, вам нужно понять, что составляет файл. Это будет текстовый файл с именем DockerFile, который включает в себя конкретные ключевые слова, которые определяют, как создать конкретное изображение. Конкретные ключевые слова, которые вы можете использовать в файле:
ДОБАВЛЯТЬ копирует файлы из источника на хосте в файловую систему контейнера в установленном пункте назначения.
CMD можно использовать для выполнения конкретной команды в контейнере.
Входная точка Устанавливает приложение по умолчанию для использования каждый раз, когда контейнер создается с изображением.
Эн Устанавливает переменные среды.
РАЗОБЛАЧАТЬ Сообщает определенный порт, чтобы обеспечить сетевое взаимодействие между контейнером и внешним миром.
ОТ Определяет базовое изображение, используемое для запуска процесса сборки.
Сопровождающий Определяет полное имя и адрес электронной почты создателя изображения.
БЕГАТЬ является центральной директивой для выполнения DockerFiles, также известной как команда Run Dockerfile.
ПОЛЬЗОВАТЕЛЬ Устанавливает UID (или имя пользователя) для запуска контейнера.
ОБЪЕМ используется для обеспечения доступа из контейнера к каталогу на хост -машине.
Workdir Устанавливает путь, в котором должна быть выполнена команда, определенная с помощью CMD.
ЭТИКЕТКА Позволяет добавить этикетку в изображение Docker.
Не все ключевые слова требуются для функционирования Dockerfile. Пример, наш пример будет использовать только из, сопровождающего и запустить.
Построение Dockerfile
Прежде чем мы создаем базовый Dockerfile, нам нужно сделать новый каталог для работы. Мы создадим Dockerbuild каталог с командой:
mkdir ~/dockerbuild 1 mkdir ~/dockerbuild
Изменить в этот недавно созданный каталог с командой:
CD ~/dockerbuild 1 CD ~/dockerbuild
Теперь мы создаем наш Dockerfile. Создайте новый файл с помощью команды:
nano dockerfile 1 nano dockerfile
В этом файле вставьте следующее, чтобы запустить DockerFile:
От Ubuntu: последнее имя сопровождающего Электронная почта Email Run apt-Get -y обновления run apt-get -y обновления run run apt-get install -y-y extential 123456789 из Ubuntu: последнее имя обслуживания Email run apt-get update run apt-get -y обновлять run apt-get install -y-essement
Где имя ваше полное имя и электронная почта — ваш адрес электронной почты.
Сохраните и закройте этот файл.
Создание изображения Docker
С помощью Basic Dockerfile вы можете построить изображение из этого файла. Выполните команду (из каталога ~/dockerbuild):
Docker Build -t «Имя: Dockerfile». 1 Docker Build -t «Имя: Dockerfile».
Где имя является названием нового изображения, которое будет создано. Важно отметить, что имя должно быть все более низкой, в противном случае сборка потерпит неудачу.
Например: скажем, вы хотите создавать изображения для веб -разработки, разработки приложений и разработки безопасности. Вы можете выпустить следующие команды:
Docker Build -t «Appdev: Dockerfile». Docker Build -t «WebDev: Dockerfile». Docker Build -t «Secdev: Dockerfile». 12345 Docker Build -t «Appdev: Dockerfile». Docker Build -t «WebDev: Dockerfile». Docker Build -t «Secdev: Dockerfile».
Это начнет процесс загрузки Ubuntu: последнее изображение и создание изображения в соответствии с Dockerfile (Рисунок 1):
Рисунок 1: изображение было построено.
Как только сборка (ы) завершена, выпустите команду:
Docker Images 1 Docker Images
Вы должны увидеть все недавно строительные изображения, теперь доступные для использования (Рисунок 2):
Рисунок 2: Недавно созданные изображения, готовые к развертыванию.
Как запустить Dockerfile для Rocky Linux
Допустим, вы хотите создать изображение, используя Rocky Linux, который обновляет вытянутое изображение Rocky Linux и устанавливает веб -сервер. Для этого мы сначала создали новый каталог с командой:
mkdir ~/rockylinux 1 mkdir ~/rockylinux
Изменить в этот каталог с командой:
CD ~/Rockylinux 1 CD ~/Rockylinux
Создайте новый Dockerfile с командой:
nano dockerfile 1 nano dockerfile
Вставьте следующее содержимое в этот файл для команды DockerFile Run:
От Rockylinux: 9 Имя обслуживания по электронной почте Email Run DNF MakeCache Run upradight -y -y run run dnf install -y httpd 123456789 от Rockylinux: 9 Имя обслуживания Email Run DNF MakeCache Run upradg
Где имя — ваше имя, а электронная почта — ваш адрес электронной почты.
Сохраните и закройте файл. Создайте изображение с помощью команды:
Docker Build -t «WebDev_rockylinux: Dockerfile». 1 Docker Build -t «WebDev_rockylinux: Dockerfile».
В зависимости от того, сколько обновления необходимо, эта конкретная сборка займет немного больше времени, чем изображение Ubuntu. Как только сборка завершится, выпустите изображения команд Docker, чтобы увидеть, что ваше недавно построенное (на основе Centos) изображение готово (Рисунок 3):
Рисунок 3: Rocky Linux -изображение доступно для развертывания.
Docker Image Build
И это все, что нужно для создания изображений Docker с Dockerfiles. Это гораздо более эффективный и стандартный метод для создания новых изображений, чем в совершении изменений в вытянутое изображение. После того, как вы будете опытны в том, как использовать DockerFiles, нет ограничений для типов изображений, которые вы можете создать.
(Примечание редактора: этот пост был обновлен. Первоначально он работал 19 июня 2019 г.).
FAQ: Использование Dockerfiles
1. Что такое Dockerfile?
DockerFile — это текстовый файл, который содержит ряд инструкций о том, как построить изображение Docker. Он определяет среду и приложение, которое будет работать внутри контейнера.
2. Какие основные команды используются в Dockerfile?
Вот некоторые важные команды, с которыми вы можете столкнуться:
От: Определяет базовое изображение для использования для нового изображения. Запуск: выполняет команды в новом уровне поверх текущего изображения и приобретает результаты. Копировать: копирует файлы или каталоги из хост -файловой системы в изображение. CMD: предоставляет по умолчанию по умолчанию для выполнения контейнера, например, команда для запуска. Intrypoint: настраивает контейнер для запуска в качестве исполняемого файла.
3. Как мне построить изображение из Dockerfile?
Чтобы построить изображение, перейдите к каталогу, содержащему ваш DockerFile, и запустите следующую команду в вашем терминале:
Docker Build -t Your-Image-name.
4. В чем разница между cmd и intrypoint?
CMD: устанавливает команды по умолчанию и/или параметры для контейнера. Это может быть переопределено при запуске контейнера. Intrypoint: настраивает контейнер для запуска в качестве исполняемого файла. Это не переопределено аргументами командной строки.
5. Как я могу оптимизировать свой DockerFile?
Чтобы оптимизировать ваш DockerFile, рассмотрите следующие советы:
Минимизируйте количество слоев: комбинируйте команды, где это возможно, используя &&. Закажите свои команды с умом: разместите команды, которые реже меняются наверху, чтобы воспользоваться кэшированием. Используйте .dockerignore: исключить файлы и каталоги, которые не нужны в изображении, чтобы уменьшить размер.
6. Что такое многоэтапная сборка?
Многоступенчатая сборка позволяет использовать множество операторов в вашем DockerFile, что полезно для отделения среды сборки от среды времени выполнения, чтобы значительно сократить конечный размер изображения.
7. Как мне запустить контейнер с моего изображения?
Как только ваше изображение будет построено, вы можете запустить контейнер, используя:
Docker Run -D Image
Где изображение является названием изображения, которое будет использоваться.
8. Где я могу найти больше информации о Dockerfiles?
Для получения более подробной информации вы можете обратиться к официальной документации Docker, которая предоставляет обширные ресурсы на Dockerfiles и их использование.
Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Джек Уоллен-это то, что происходит, когда генеральный разум с умом с современным Snark. Джек — искатель истины и писатель слов с квантовым механическим карандашом и разрозненным ударом звука и души. Хотя он проживает … читайте больше от Джека Валлена