Как создать собственный образ 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

Оставить комментарий

Исправление разрывов изображения на графике Intel в Pardus Linux: руководство, ориентированное на результат.

Исправление разрывов изображения на графике Intel в Pardus Linux: руководство, ориентированное на результат.

Для устранения разрывов изображения на экране, вызванных графикой Intel, в Pardus Linux проверьте совместимость X11 и Wayland, настройки композитора, частоту обновления, активный драйвер Xorg и используйте TearFree только при необходимости.

Как настроить межсетевой экран SLES 15 с помощью firewall-cmd

Как настроить межсетевой экран SLES 15 с помощью firewall-cmd

Настройте firewalld на SLES 15: проверьте зоны, разрешите службы или порты, сохраните постоянные правила, безопасно перезагрузите систему и проверьте доступ.

Руководство по настройке оперативного обновления SLES: применение обновлений ядра без перезагрузки.

Руководство по настройке оперативного обновления SLES: применение обновлений ядра без перезагрузки.

Включите функцию автоматического обновления ядра в режиме реального времени на SLES 15 SP7, применяйте поддерживаемые исправления без перезагрузки, проверяйте активные патчи и определяйте, когда все еще требуется перезапуск ядра.

Как включить режим FIPS на сервере SUSE Linux Enterprise Server 15

Как включить режим FIPS на сервере SUSE Linux Enterprise Server 15

Включите режим FIPS на SLES 15 с помощью поддерживаемой SUSE утилиты настройки, безопасно перезагрузите систему, проверьте состояние ядра и криптографической политики, а также проверьте ограничения сертификации.

Как установить Google Chrome на Gooroom OS, не нарушая политики безопасности.

Как установить Google Chrome на Gooroom OS, не нарушая политики безопасности.

Безопасная установка Google Chrome на Gooroom OS с использованием официальных .deb-пакетов, APT-проверки, проверок политик, инструкций по обновлению и исправлений для управляемых устройств.

Как безопасно экспортировать системные журналы SLES на удаленный сервер Syslog

Как безопасно экспортировать системные журналы SLES на удаленный сервер Syslog

Надежная пересылка системных журналов SLES на удаленный сервер syslog с использованием rsyslog, TLS-сертификатов, проверки имен узлов, очередей, валидации и тестирования.

Интеграция Active Directory с SSSD в SLES 15: пошаговое руководство

Интеграция Active Directory с SSSD в SLES 15: пошаговое руководство

Подключите SLES 15 к Active Directory с помощью SSSD, используя YaST. Подготовьте DNS и время, настройте вход в домен, проверьте Kerberos и сравните SSSD, Winbind и realmd.

Fix Realtek RTL8821CE Wi-Fi Driver Issues on Pardus Linux

Fix Realtek RTL8821CE Wi-Fi Driver Issues on Pardus Linux

Fix RTL8821CE Wi-Fi on Pardus Linux by checking the built-in rtw88 driver, Realtek firmware, rfkill, NetworkManager, and safe fallback options.

Исправлена ​​ошибка «Временная ошибка разрешения DNS» в Debian 12 при использовании systemd-resolved.

Исправлена ​​ошибка «Временная ошибка разрешения DNS» в Debian 12 при использовании systemd-resolved.

Диагностика и устранение ошибок разрешения DNS в Debian 12 с помощью systemd-resolved, включая resolv.conf, NetworkManager, networkd, cache и verification.

Как безопасно установить Pardus Linux в паре с Windows 11.

Как безопасно установить Pardus Linux в паре с Windows 11.

Установите Pardus 25.2 рядом с Windows 11, создав резервную копию, уменьшив размер тома Windows, загрузившись с USB-накопителя с поддержкой UEFI и защитив существующие разделы EFI и восстановления.