Как создать собственный образ Docker в Linux

Вы когда-нибудь хотели создать свой собственный образ Docker ? Как оказалось, с чем-то под названием «Dockerfile» вы можете это сделать. В этом руководстве мы рассмотрим, как создать собственный образ Docker.

Как установить Докер в Linux

Вам нужно будет установить Docker на ваш сервер Linux, прежде чем вы попытаетесь создать новый образ. К счастью, docker легко установить в самых разных операционных системах Linux. В этом руководстве мы сосредоточимся на Ubuntu, Debian , Arch Linux, Fedora и OpenSUSE .

Чтобы установить Docker, откройте терминал. Как только он открыт, установка готова к началу. Следуйте приведенным ниже инструкциям по установке, соответствующим используемой операционной системе Linux.

Убунту/Дебиан

Сначала вам нужно обновить индекс программного обеспечения в вашей системе Ubuntu/Debian. Для этого запустите приведенную ниже команду apt update .

судо подходящее обновление

Теперь вы должны установить транспортный пакет HTTPS для установки через HTTPS. Вам также потребуется установить Curl и несколько других пакетов. Эти пакеты можно установить с помощью команды apt install .

sudo apt установить apt-transport-https ca-сертификаты curl software-properties-common

После установки пакетов пришло время включить ключ Docker GPG в вашей системе Ubuntu/Debian. Этот ключ гарантирует безопасность установки пакетов в Ubuntu.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

С включенным ключом GPG пришло время включить репозиторий Docker. Для этого выполните следующую команду echo в терминале.

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) стабильная" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

После включения репозитория Docker повторно запустите команду apt update , чтобы обновить индекс программного обеспечения.

судо подходящее обновление

Наконец, вы можете установить необходимые вам пакеты Docker в Ubuntu или Debian.

sudo apt установить docker-ce docker-ce-cli containerd.io

Арх Линукс

Если вы используете Arch Linux, вы можете просто запустить команду pacman -S и установить пакет «docker», чтобы Docker заработал в вашей системе.

sudo pacman -S докер

Установив пакет Docker в вашей системе Arch, выполните следующие команды systemctl , чтобы включить программное обеспечение.

sudo systemctl включить докер sudo systemctl запустить докер

Федора

Заставить Docker работать с Fedora довольно просто. Для начала используйте команду dnf install для установки программного обеспечения в вашей системе.

sudo dnf установить докер

Как только пакет будет установлен в вашей системе Fedora, включите его с помощью systemd.

sudo systemctl включить докер sudo systemctl запустить докер

OpenSUSE

Чтобы Docker работал с OpenSUSE, вы должны добавить репозиторий Docker.

sudo zypper addrepo https://download.docker.com/linux/opensuse/$(awk -F= '/^VERSION_ID/{print $2}' /etc/os-release)/x86_64/стабильный докер

Затем обновите Zypper и установите программное обеспечение.

судо зиппер обновить

sudo zypper установить docker-ce

Наконец, включите Docker в вашей системе с помощью systemd.

sudo systemctl включить докер sudo systemctl запустить докер

Как выбрать базовое изображение

Каждый образ Docker, взятый из DockerHub, создается на основе базового образа. Итак, вам нужно выбрать базовый образ для вашего контейнера Docker. В этом руководстве мы будем использовать Ubuntu, так как это одна из наиболее совместимых операционных систем Linux.

В этом руководстве мы покажем вам пример того, как создать образ Drupal 10 с Ubuntu 22.04. Однако эти инструкции по сборке могут применяться ко всему, что вы хотите создать, от веб-приложений до программ Python и т. д.

Для начала откройте текстовый редактор Nano в терминале. Вы будете использовать Nano для создания собственного Dockerfile.

нано -w ~/dockerfile

В текстовом редакторе Nano введите следующий код, чтобы указать, что вы хотите использовать Ubuntu. Чтобы получить Ubuntu 22.04, укажите его. Если вы хотите использовать другую версию Ubuntu, информацию можно найти здесь .

# Use the official Ubuntu base image
FROM ubuntu:22.04

Как настроить рабочий каталог

Вы должны настроить рабочий каталог в контейнере Docker. Рабочий каталог — это место, где приложение развернуто в Ubuntu в контейнере. В этом примере мы будем работать с Drupal 10. Drupal — это веб-приложение, поэтому нам нужно установить WORKDIR как /var/www/html/.

В текстовом редакторе Nano нажмите клавишу Enter , чтобы сделать пробел. Затем вставьте следующий код.

# Set the working directory in the container WORKDIR /var/www/html

Как установить зависимости программы

Приложение, которое вы развертываете в образе Docker, должно соответствовать своим зависимостям. Если в образ не установлены правильные зависимости, он не будет работать. Мы создаем образ Drupal 10 на основе Ubuntu 22.04, поэтому мы должны добавить в файл все зависимости Drupal 10.

В текстовом редакторе Nano нажмите клавишу Enter , чтобы сделать пробел. Затем вставьте следующий код.

# Install dependencies RUN apt-get update && apt-get install -y \ apache2 \ php \ libapache2-mod-php \ php-curl \ php-gd \ php-intl \ php-mbstring \ php-mysql \ php-pgsql \ php-xml \ php-zip \ unzip

Как скопировать код программы

Следующим шагом в этом процессе является предоставление вашего файла Docker с программным кодом. Еще раз, мы используем Drupal 10 в качестве примера. Итак, мы должны предоставить Dockerfile средства для загрузки и извлечения Drupal 10.

В текстовом редакторе Nano нажмите клавишу Enter , чтобы создать новую строку. Затем добавьте следующий код, чтобы ваш файл Dockerfile мог загрузить Drupal 10.

# Download and install Drupal RUN wget https://ftp.drupal.org/files/projects/drupal-10.2.tar.gz && \ tar -xvf drupal-10.2.tar.gz && \ mv drupal-10.2 .

Как открыть порты

Каждый раз, когда вы развертываете контейнер Docker, он обращается к портам. Например, если вы запускаете контейнер Syncthing по умолчанию, он предоставляет порт 8384. Nextcloud? Порт 8080 и 80. Для правильной работы ваш контейнер должен предоставлять правильные порты.

Во-первых, выясните, к каким портам необходима программа, которую вы развертываете. В этом примере мы развертываем Drupal 10. Поскольку Drupal 10 — это CMS-система для веб-сервера, ему нужен порт 80. Итак, в текстовом файле Nano мы открываем порт 80.

# Expose the Drupal port EXPOSE 80

Как установить команду по умолчанию

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

В текстовом редакторе Nano нажмите Enter , чтобы создать новое пространство в файле. Затем вставьте следующий код.

# Start Apache in the foreground CMD ["apache2ctl", "-D", "FOREGROUND"]

Когда вы добавили этот последний фрагмент кода в файл, сохраните его, нажав Ctrl + O , и выйдите из текстового редактора Nano, нажав Ctrl + X. Dockerfile должен выглядеть так, как показано ниже.

Примечание: это пример Dockerfile. Вы можете использовать пример Drupal в качестве эталона для создания собственного приложения для любого приложения.

FROM ubuntu:22.04

# Set the working directory
WORKDIR /var/www/html

# Install dependencies
RUN apt-get update && apt-get install -y \
apache2 \
php \
libapache2-mod-php \
php-curl \
php-gd \
php-intl \
php-mbstring \
php-mysql \
php-pgsql \
php-xml \
php-zip \
unzip


# Download and install Drupal
RUN wget https://ftp.drupal.org/files/projects/drupal-10.2.tar.gz && \
tar -xvf drupal-10.2.tar.gz && \
mv drupal-10.2 .


# Expose the Drupal port
EXPOSE 80

# Start Apache in the foreground
CMD ["apache2ctl", "-D", "FOREGROUND"]

Как построить образ

Чтобы создать новый образ Docker с помощью созданного вами Dockerfile, введите следующую команду сборки docker .

sudo docker build -t my-docker-image .

Приведенная выше команда создаст образ Docker.

Как развернуть образ

Чтобы развернуть новый образ в контейнере, вам нужно использовать команду запуска docker . Например, чтобы запустить недавно созданный образ Drupal 10 Ubuntu на порту 80, выполните следующие действия.

sudo docker run -d --name my-drupal-container -p 80:80 my-docker-image

Leave a Comment

Диагностика Mp3: устранение до 50 проблем с аудиофайлами Mp3

Диагностика Mp3: устранение до 50 проблем с аудиофайлами Mp3

MP3 Diags — это идеальный инструмент для устранения проблем в вашей музыкальной коллекции. Он может корректно проставлять теги в mp3-файлах, добавлять отсутствующие обложки альбомов и исправлять ошибки VBR.

Приложения для уведомлений Google Voice на рабочем столе

Приложения для уведомлений Google Voice на рабочем столе

Как и Google Wave, Google Voice вызвал большой ажиотаж по всему миру. Google стремится изменить способ нашего общения, и поскольку он становится всё более популярным,

Загрузите избранное Flickr с помощью FlickrFaves

Загрузите избранное Flickr с помощью FlickrFaves

Существует множество инструментов, позволяющих пользователям Flickr загружать фотографии в высоком качестве, но есть ли способ загрузить избранное Flickr? Недавно мы...

OK Sampler — бесплатная программа для создания музыкальных семплов

OK Sampler — бесплатная программа для создания музыкальных семплов

Что такое сэмплирование? Согласно Википедии, «это процесс взятия фрагмента, или сэмпла, одной звукозаписи и повторного использования его в качестве инструмента или

Резервное копирование Google Sites: импорт/экспорт

Резервное копирование Google Sites: импорт/экспорт

Google Sites — это сервис от Google, позволяющий пользователям размещать сайты на серверах Google. Но есть одна проблема: встроенная функция резервного копирования отсутствует.

Приложение Google Tasks для ПК

Приложение Google Tasks для ПК

Google Tasks не так популярен, как другие сервисы Google, такие как Calendar, Wave, Voice и т. д., но он по-прежнему широко используется и является неотъемлемой частью жизни людей.

Как восстановить потерянные разделы и данные жесткого диска [Руководство]

Как восстановить потерянные разделы и данные жесткого диска [Руководство]

В нашем предыдущем руководстве по безопасному удалению данных с жесткого диска и съемных носителей с помощью Ubuntu Live и загрузочного CD DBAN мы обсуждали, что диск на базе Windows

Установите пакеты Debian в Arch Linux с помощью Debtap

Установите пакеты Debian в Arch Linux с помощью Debtap

Вы пытаетесь заставить приложение работать на Arch Linux или Manjaro, но не можете найти его в официальных репозиториях программного обеспечения или даже в AUR? Попробуйте Дебтап. Это

Улучшите буфер обмена Gnome Shell с помощью Pano

Улучшите буфер обмена Gnome Shell с помощью Pano

Посмотрим правде в глаза, буфер обмена Gnome Shell по умолчанию не очень хорош. Установите Pano, чтобы улучшить работу с буфером обмена!

Как установить DaVinci Resolve 17 в Linux

Как установить DaVinci Resolve 17 в Linux

Вам нужен отличный нелинейный видеоредактор для Linux? Заставьте Davinci Resolve 17 работать с этим руководством!