Поиск по сайту:

Docker: как его использовать на практике — часть 3


На этой странице

  1. Как запустить контейнер Docker
  2. Введение в Docker Hub
  3. Поиск образов Docker
  4. Скачивание образа Docker
  5. Архитектура образа Docker
  6. Удаление образа Docker
  7. Контейнеры недолговечны
  8. Сеть контейнера Docker
  9. Создание личного блокнота с помощью контейнера WordPress
  10. Создание постоянного хранилища
  11. Создание личного блокнота с помощью контейнера «ДокуВики»
  12. Удаление контейнера Docker
  13. Сводка

Часть 3. Создание блокнота с контейнерами WordPress и DokuWiki

Предисловие

Во второй части мы подготовили нашу систему для управления докер-контейнерами.

В этой части мы начнем использовать образы Docker и создавать контейнеры на практике. Другими словами, мы создадим персональный веб-блокнот, работающий поверх DokuWiki или WordPress. Вы можете выбрать то, что вам удобно.

Как запустить контейнер Docker

Сначала мы должны убедиться, что механизм докера работает должным образом, загрузив изображение «Hello world» и создав из него контейнер.

Помните, когда мы говорим об образе, это приостановленное состояние, тогда как когда мы говорим о контейнере, это экземпляр образа докера во время выполнения. По аналогии, о которой мы говорили в предыдущей части, образ докера похож на файл 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

Вы можете найти «готовый к загрузке и запуску образ докера», просто посетив онлайн-концентратор докеров или используя терминал. Обратите внимание, что вы не можете загрузить образ докера из веб-хаба, но вы можете узнать больше об образе, например, как он создается, поддерживается и т. д.

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

sudo docker search wordpress

Как вы можете видеть, существует множество образов докеров WordPress, созданных с использованием различных комбинаций (например, с включением базы данных или без него), они отмечены звездами популярности и являются либо официальными (поддерживается докер-компанией), либо автоматизированными (созданы и обслуживаются физическими лицами). Очевидно, что любой может создать учетную запись и загрузить свой собственный образ докера, и мы обсудим это позже.

Загрузка образа Docker

Для целей этой статьи мы будем использовать последнюю сборку образа докера bitnamis, который поставляется с предустановленной MySQL. Итак, давайте загрузим его:

sudo docker pull bitnami/wordpress:latest

После того, как вы запустите приведенную выше команду, она свяжется с докер-хабом, спросит, есть ли репозиторий с именем «bitnami», а затем спросит, есть ли сборка «WordPress», которая помечена как «последняя». версия.

В настоящее время мы загрузили образ WordPress и больше ничего. Теперь мы можем продолжить, загрузив изображение «ДокуВики», выполнив поиск и выбрав то, которое нам нравится, или используя изображение, которое выглядит следующим образом.

sudo docker pull mprasil/dokuwiki

Архитектура образа Docker

В ожидании завершения процедуры загрузки вы можете видеть, что образ докера представляет собой многослойный образ поверх базового образа. Вы можете видеть, что каждый слой загружается, а затем «волшебным образом» объединяется. На приведенной ниже диаграмме показан базовый образ Ubuntu, состоящий из 4 сложенных слоев изображения.

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

Удаление образа Docker

Теперь, если вы проверите, сколько изображений у вас есть в вашей системе

sudo docker images

вы увидите WordPress, DokuWiki и Hello World. Если по какой-либо причине вы хотите удалить и удалить (rmi) изображение, просто введите

sudo docker rmi <name-of-the-image>

где имя изображения — это имя докера, отображаемое с помощью команды «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

Подробнее о том, как взаимодействовать с контейнером, можно прочитать в официальной документации докера https://docs.docker.com/engine/userguide/containers/usingdocker/

Где находятся контейнеры

Если вы хотите увидеть, где находятся контейнеры в файловой системе hosts, вы можете перейти в /var/lib/docker.

sudo cd /var/lib/docker
sudo ls
sudo cd containers
sudo cd ID
sudo ls

Как видите, идентификационные номера представляют фактически созданные вами контейнеры.

Создание постоянного хранилища

Давайте создадим новый контейнер 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/

Создание личного блокнота с помощью контейнера «ДокуВики»

На этот раз мы создадим блокнот с помощью «ДокуВики». Так как мы ранее скачали образ, осталось сделать из него контейнер.

Итак, давайте запустим следующую команду, чтобы создать наш именованный контейнер \\mywikipad\\

docker run -d -p 80:80 --name mywikipad mprasil/dokuwiki

А затем зайдите в свой браузер и добавьте следующий адрес, чтобы начать настройку вашего вики-блокнота:

http://localhost/install.php

Вы можете узнать больше о «Докувики» из официальной документации и настроить вики под свои нужды:

https://www.dokuwiki.org/manual

Удаление контейнера Docker

Как только вы освоитесь с созданием, запуском и остановкой док-контейнеров, вам понадобится навести порядок в тестировании, созданном несколькими контейнерами.

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

docker rm <name of container or ID>

Вы также можете добавить несколько идентификаторов в одну и ту же команду \\docker rm\\, чтобы удалить несколько контейнеров Docker одновременно.

Резюме

В этой части мы узнали, как создать контейнер и использовать его на практике для создания личного блокнота на основе WordPress или «ДокуВики». Мы рассмотрели некоторые основные команды о том, как запускать и останавливать создаваемые нами контейнеры и как удалять образы и контейнеры.

В следующей части мы рассмотрим, как создаются образы докеров путем создания собственных образов.