Оценок пока нет Основы Dockerfile

Используя образ Docker, можно не довольно развертывать один контейнер за другим. После того, как вы извлекли образ из реестра (например, Docker Hub ), каждый контейнер можно развернуть с помощью одной команды docker . Но что произойдет, если вам придется развернуть множество контейнеров (каждый для разных целей) из одного и того же образа? Внезапно управление этими контейнерами может стать немного громоздким.

Скажем, например, вы загружаете последний образ Ubuntu для разработки. Прежде чем вы сможете разработать с этим контейнером, вы хотите внести в образ ряд изменений (например, обновить программное обеспечение и добавить необходимые пакеты разработки для выполняемой работы).

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

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

Основы Dockerfile

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

  • ADD копирует файлы из источника на хосте в собственную файловую систему контейнера в указанном месте назначения.
  • CMD можно использовать для выполнения определенной команды в контейнере.
  • ENTRYPOINT устанавливает приложение по умолчанию, которое будет использоваться каждый раз при создании контейнера с изображением.
  • ENV устанавливает переменные среды.
  • EXPOSE связывает определенный порт, чтобы обеспечить сетевое взаимодействие между контейнером и внешним миром.
  • FROM определяет базовый образ, используемый для запуска процесса сборки.
  • MAINTAINER определяет полное имя и адрес электронной почты создателя файла образа.
  • RUN — это центральная исполнительная директива для Dockerfile.
  • USER устанавливает UID (или имя пользователя) для запуска контейнера.
  • VOLUME используется для разрешения доступа из контейнера к каталогу на хост-машине.
  • WORKDIR устанавливает путь, по которому команда, определенная с помощью CMD, должна выполняться.
  • LABEL позволяет добавить метку к образу докера.

Не все ключевые слова необходимы для работы Dockerfile. В данном случае наш пример будет использовать только FROM , MAINTAINER и RUN .

Создание Dockerfile

Прежде чем мы создадим Dockerfile, нам нужно создать новый каталог, с которым мы будем работать. Мы создадим каталог dockerbuild с помощью команды:

mkdir ~/dockerbuild

Перейдите в этот только что созданный каталог с помощью команды:

cd ~/dockerbuild

Теперь создадим наш Dockerfile. Создайте новый файл с помощью команды:

nano Dockerfile

В этот файл вставьте следующее:

FROM ubuntu:latest
MAINTAINER NAME EMAIL
 
RUN apt-get -y update
RUN apt-get -y upgrade
RUN apt-get install -y build-essential

где NAME — ваше полное имя, а EMAIL — ваш адрес электронной почты.

Сохраните и закройте этот файл.

Создание образа

После завершения файла Dockerfile вы можете создать образ из этого файла. Выполните команду (из каталога ~/dockerbuild):

docker build -t "NAME:Dockerfile" .

Где NAME — это имя создаваемого нового изображения.

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

docker build -t "appdev:Dockerfile" .
docker build -t "webdev:Dockerfile" .
docker build -t "secdev:Dockerfile" .

Когда сборка (и) будет завершена, введите команду:

docker images

Вы должны увидеть все недавно созданные образы, которые теперь доступны для использования

Недавно созданные образы, готовые к развертыванию.

Пример Dockerfile для CentOS

Допустим, вы хотите создать образ с помощью CentOS, который обновляет извлеченный образ CentOS и устанавливает веб-сервер. Для этого мы сначала создадим новый каталог с помощью команды:

mkdir ~/centos

Перейдите в этот каталог с помощью команды:

cd ~/centos

Создайте новый Dockerfile с помощью команды:

	nano Dockerfile

Вставьте в этот файл следующее содержимое:

FROM centos:7
MAINTAINER NAME EMAIL
 
RUN yum makecache
RUN yum upgrade -y
RUN yum install -y httpd

Где NAME — ваше имя, а EMAIL — ваш адрес электронной почты.

Сохраните и закройте файл. Создайте образ с помощью команды:

docker build -t “webdev_centos:Dockerfile” .

В зависимости от того, сколько обновлений необходимо, эта сборка займет немного больше времени, чем образ Ubuntu. После завершения сборки выполните команду docker images, чтобы убедиться, что ваш недавно созданный (на основе CentOS) образ готов.

Пожалуйста, оцените материал

WebSofter

Web - технологии