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


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

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

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

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

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

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

Как загрузить обои на рабочий стол Linux с помощью загрузчика обоев

Как загрузить обои на рабочий стол Linux с помощью загрузчика обоев

Wallpaper Downloader — удобный загрузчик и менеджер обоев для Linux. Он поддерживает большинство сред рабочего стола Linux и очень прост в использовании. Это руководство

Как установить ОС Tuxedo на свой компьютер

Как установить ОС Tuxedo на свой компьютер

Хотите протестировать ОС Tuxedo на компьютерах Tuxedo? Узнайте, как установить последнюю версию Tuxedo OS на свой ПК.

Как установить файл DEB в Linux

Как установить файл DEB в Linux

.DEB вариант № Что ты делаешь с этим? Узнайте о многих способах установки файлов DEB на ПК с Linux.

Как играть в Dying Light на Linux

Как играть в Dying Light на Linux

Dying Light — видеоигра в жанре survival horror, разработанная Techland и изданная Warner Bros Interactive Entertainment в 2015 году. Игра сосредоточена на

Как установить Neptune Linux на свой компьютер

Как установить Neptune Linux на свой компьютер

Neptune использует среду рабочего стола KDE Plasma 5 и стремится создать элегантную ОС. Вот как установить Neptune Linux на свой компьютер.

Попробуйте новый рабочий стол на основе оснастки Ubuntu

Попробуйте новый рабочий стол на основе оснастки Ubuntu

Хотите опробовать новую настольную операционную систему Ubuntu, основанную на Snap-пакетах? Узнайте, как развернуть его на виртуальной машине с помощью этого руководства.

Как играть в Undertale на Linux

Как играть в Undertale на Linux

Undertale — это двухмерная инди-ролевая игра 2015 года, разработанная и изданная разработчиком игр Тоби Фоксом. Это руководство расскажет о загрузке и установке Undertale на вашем компьютере.

Как играть в Total War: THREE KINGDOMS на Linux

Как играть в Total War: THREE KINGDOMS на Linux

Total War: Three Kingdoms — это пошаговая стратегия в реальном времени, разработанная Creative Assembly. Вот как играть на Linux.