Docker · 8 min read · Nov 24, 2025
Docker: Как использовать его на практике - Часть 3
Часть 3: Создание блокнота с контейнерами WordPress и DokuWiki
Предисловие
В первой части мы говорили о том, как работают контейнеры Docker и чем они отличаются от других технологий виртуализации программного обеспечения, а во второй части мы подготовили нашу систему для управления контейнерами Docker.
В этой части мы начнем использовать образы Docker и создавать контейнеры на практике. Другими словами, мы создадим веб-ориентированный, расширенный личный блокнот, который работает на основе DokuWiki или WordPress. Вы можете выбрать тот, с которым вам удобнее.
Как запустить контейнер Docker
Сначала мы должны убедиться, что движок Docker работает как нужно, скачав образ “Hello world” и создав из него контейнер.
Помните, когда мы говорим об образе, это приостановленное состояние, тогда как когда мы говорим о контейнере, это экземпляр образа Docker во время выполнения. В аналогии, о которой мы говорили в предыдущей части, образ Docker похож на ISO-файл дистрибутива Linux, в то время как контейнер — это живая сессия ISO-файла, как если бы вы запускали его с USB-накопителя.
Чтобы скачать и запустить образ “Hello world”, просто введите в терминале
sudo docker run hello-worldЭта команда загружает образ Hello World и запускает его в контейнере. Когда контейнер запускается, он выводит информационное сообщение, а затем завершает работу (что означает, что он выключается).

Как мы можем проверить, сколько образов у нас в системе? Мы просто выполняем
sudo docker images
Вы можете задать себе вопрос, как моя система нашла этот образ Hello World и откуда он взялся? Что ж, здесь вступает в игру Docker Hub.
Введение в Docker Hub
Docker Hub — это облачный централизованный ресурс для поиска образов контейнеров, создания образов и распространения этих образов.
В частности, Docker Hub предоставляет несколько полезных функций и возможностей, которые мы обсудим более подробно в следующих частях.
В данный момент мы сосредоточимся на одной функции, а именно на поиске и загрузке образа Docker.
Поиск образов Docker
Вы можете искать “готовый к загрузке и запуску образ Docker”, просто посетив онлайн Docker Hub или используя терминал. Обратите внимание, что вы не можете загрузить образ Docker с веб-хаба, но вы можете узнать больше об образе, например, как он создан и поддерживается и т. д.
Итак, для целей этой части мы сосредоточимся на использовании терминала. Давайте поищем WordPress
sudo docker search wordpress
Как вы можете видеть, существует множество образов Docker для WordPress, которые созданы с различными комбинациями (например, с включением базы данных или без нее), они оценены по звездам популярности и могут быть официальными (поддерживаемыми компанией Docker) или автоматическими (созданными и поддерживаемыми отдельными лицами). Очевидно, что любой может создать учетную запись и загрузить свой собственный образ Docker, и мы обсудим это в следующей части.
Загрузка образа Docker
Для целей этой статьи мы будем использовать последний образ Docker от Bitnami, который поставляется с предустановленным MySQL. Итак, давайте загрузим его:
sudo docker pull bitnami/wordpress:latestПосле выполнения вышеуказанной команды он свяжется с Docker Hub, спросит, есть ли репозиторий с именем “bitnami”, а затем спросит, есть ли сборка “WordPress”, которая помечена как “последняя” версия.

В данный момент мы загрузили образ WordPress и ничего больше. Теперь мы можем продолжить, загрузив образ DokuWiki, найдя один и выбрав тот, который нам нравится, или используя следующий:
sudo docker pull mprasil/dokuwikiАрхитектура образа Docker
Ожидая завершения процедуры загрузки, вы можете увидеть, что образ Docker — это многослойный образ на основе базового образа. Вы можете видеть, как каждый слой загружается, а затем “волшебным образом” объединяется. Диаграмма ниже показывает базовый образ Ubuntu, состоящий из 4 сложенных слоев образа.

Как вы можете себе представить, каждый образ Docker ссылается на список слоев только для чтения, которые представляют собой различия в файловой системе. Когда вы создаете новый контейнер из образа Docker, как мы сделаем позже, вы добавляете новый тонкий записываемый слой поверх основного стека. Все изменения, внесенные в работающий контейнер — такие как запись новых файлов, изменение существующих файлов и удаление файлов — записываются в этот тонкий записываемый слой контейнера. Диаграмма ниже показывает контейнер, основанный на образе Ubuntu 15.04.

Удаление образа Docker
Теперь, если вы проверите, сколько образов у вас в системе
sudo docker imagesвы увидите WordPress, DokuWiki и Hello World. Если по какой-либо причине вы хотите удалить и стереть (rmi) образ, просто введите
sudo docker rmi где имя образа — это имя Docker, как оно отображается с помощью команды “docker images”. Например, если мы хотим удалить Hello World, мы можем просто ввести:
sudo docker rmi hello-worldКонтейнеры эфемерны
По замыслу контейнеры Docker эфемерны. Под “эфемерными” мы имеем в виду, что контейнер может быть остановлен и уничтожен, и новый может быть создан из того же образа Docker и установлен с абсолютным минимумом настройки и конфигурации.
Таким образом, вы должны помнить, что когда мы создадим контейнер из образа Docker по вашему выбору (WordPress или DokuWiki), любые изменения, которые вы внесете, например, добавление поста, изображения, будут потеряны, как только вы остановите или удалите контейнер. Другими словами, когда контейнер удаляется, любые данные, записанные в контейнер, которые не хранятся в объеме данных, удаляются вместе с контейнером.
Объем данных — это каталог или файл в файловой системе хоста Docker, который монтируется непосредственно в контейнер. Таким образом, вы можете менять контейнеры, используя новые, и сохранять любые данные в вашей домашней папке пользователей. Обратите внимание, что вы можете смонтировать любое количество объемов данных в контейнер. Даже несколько контейнеров также могут делить один или несколько объемов данных.
Диаграмма ниже показывает один хост Docker (например, ваш Ubuntu 15.10), работающий с двумя контейнерами. Как вы можете видеть, также есть один общий объем данных, расположенный по адресу /data на хосте Docker. Он монтируется непосредственно в оба контейнера.

Таким образом, когда контейнер удаляется, любые данные, хранящиеся в объемах данных, сохраняются на хосте Docker и могут быть смонтированы в новый контейнер.
Сеть контейнера Docker
Когда вы устанавливаете Docker, он создает сетевое устройство в вашей системе. Вы можете просмотреть его (он будет называться docker0) как часть сетевого стека хоста, используя команду ifconfig на вашей хост-системе.
Важно понимать, что контейнеры Docker изолированы, и они являются отдельными микросервисами, которые имеют свои собственные сетевые свойства, и способ, которым мы запускаем их и подключаемся к ним, заключается в сопоставлении их номера порта с номером порта системы хоста.
Таким образом, мы можем открыть веб-сервис, который запускает контейнер, для системы хоста.
Создание личного блокнота с контейнером WordPress
Давайте начнем с создания нашего тестового блокнота. Сначала мы будем использовать образ WordPress для создания контейнера Docker
sudo docker run --name=mynotepad -p 80:80 -p 443:443 bitnami/wordpressС помощью вышеуказанной команды мы попросили службу Docker в нашей хост-системе создать и запустить (docker run) контейнер с именем mynotepad (–name=mynotepad), сопоставить порты HTTP и HTTPS хоста и контейнера (-p 80:80 -p 443:443) и использовать образ WordPress (bitnami/wordpress)

После инициализации контейнера вам будет предоставлена информация о контейнере. Время запустить браузер и перейти по адресу http://localhost
Если все прошло хорошо, вы увидите стандартный веб-сайт WordPress

Как вы уже знаете, чтобы войти на страницу администрирования WordPress, просто перейдите по адресу http://localhost/login и используйте стандартные учетные данные user / bitnami. Затем вы можете создать нового пользователя или тестовый пост в WordPress и опубликовать его. Вы можете увидеть мой тестовый пост на изображении ниже

Давайте вернемся к терминалу. Как вы можете видеть, ваш терминал в данный момент связан с работающим контейнером. Вы можете использовать Ctrl+C, чтобы выйти. Это также остановит контейнер.
Теперь давайте проверим наши доступные контейнеры. Вы можете выполнить следующую команду:
sudo docker ps -lчтобы просмотреть контейнер, который мы ранее создали и запустили.
Как вы можете видеть на вышеуказанном изображении, есть важная информация, такая как имя контейнера и уникальный идентификатор контейнера. Таким образом, мы можем снова запустить контейнер:
docker start mynotepadЗатем вы можете проверить процессы, которые запускает контейнер Docker, с помощью следующей команды:
sudo docker top mynotepadПо умолчанию с помощью docker start mynotepad контейнер Docker работает в фоновом режиме. Чтобы остановить его, вы можете выполнить следующую команду
sudo docker stop mynotepadВы можете прочитать больше о том, как взаимодействовать с контейнером в официальной документации Docker https://docs.docker.com/engine/userguide/containers/usingdocker/
Где находятся контейнеры
Если вы хотите увидеть, где находятся контейнеры в файловой системе хоста, вы можете перейти в /var/lib/docker
sudo cd /var/lib/docker
sudo ls
sudo cd containers
sudo cd ID
sudo lsКак вы можете видеть, номера ID представляют собой фактические контейнеры, которые вы создали.
Создание постоянного хранилища
Давайте создадим новый контейнер WordPress, но на этот раз мы поместим его в фоновый режим и также откроем папку WordPress для нашей хост-системы, чтобы мы могли помещать файлы в нее или удалять любые файлы, которые нам не нужны.
Сначала создадим папку в нашей домашней директории
mkdir ~/wordpress-filesзатем запустим и создадим контейнер на основе того же образа, который мы создали ранее:
sudo docker run -d -ti --name=mynotepad-v2 -v ~/wordpress-files:/opt/bitnami/apps -e USER_UID=`id -u` -p 80:80 bitnami/wordpressРазница в том, что на этот раз мы использовали параметр -d для режима отсоединения и параметр -ti, чтобы подключить терминал в интерактивном режиме, чтобы я мог взаимодействовать с ним позже.
Чтобы проверить работающий контейнер, просто выполните следующую команду
sudo docker ps
Давайте остановим контейнер
sudo docker stop mynotepad-v2Теперь, если вы выполните команду docker ps, вы ничего не увидите.
Давайте снова запустим его с помощью следующей команды:
sudo docker start mynotepad-v2Если вы проверите папку, которую мы создали ранее, вы увидите установку WordPress

Вы можете узнать больше об образе, который мы использовали, на Docker Hub https://hub.docker.com/r/bitnami/wordpress/
Создание личного блокнота с контейнером DokuWiki
На этот раз мы создадим блокнот, используя DokuWiki. Поскольку мы ранее загрузили образ, единственное, что осталось сделать, это создать контейнер из него.
Итак, давайте выполним следующую команду, чтобы создать контейнер с именем mywikipad
docker run -d -p 80:80 --name mywikipad mprasil/dokuwikiА затем перейдите в браузер и добавьте следующий адрес, чтобы начать настройку вашего вики-блокнота:
http://localhost/install.phpВы можете узнать больше о DokuWiki из официальной документации и настроить вики под ваши нужды:
https://www.dokuwiki.org/manual
Удаление контейнера Docker
Как только вы освоитесь с созданием, запуском и остановкой контейнеров Docker, вы обнаружите, что вам нужно очистить тестовый беспорядок, созданный несколькими контейнерами.
Чтобы удалить контейнер, сначала вам нужно остановить его, а затем удалить, выполнив следующую команду:
docker rm Вы также можете добавить несколько ID в одной команде docker rm, чтобы удалить несколько контейнеров Docker одновременно.
Резюме
В этой части мы узнали, как создать контейнер и использовать его на практике для создания личного блокнота на основе WordPress или DokuWiki. Мы рассмотрели некоторые основные команды о том, как запускать и останавливать контейнеры, которые мы создаем, и как удалять образы и контейнеры.
В следующей части мы рассмотрим, как создаются образы Docker, создавая свои собственные.
Get new posts in your inbox
No spam. Unsubscribe anytime.