Развертывание WordPress с помощью Shipyard в Ubuntu 14.04
Ubuntu, VPS | Комментировать запись
Shipyard – это инструмент для управления серверами Docker. Docker – это современная программа контейнеризации. Shipyard позволяет просматривать, какие контейнеры запущены на каждом отдельном сервере, останавливать и запускать старые и создавать новые контейнеры.
После установки инструментом Shipyard можно управлять через графический интерфейс, API или из командной строки. в целом, Shipyard очень прост в настройке и использовании.
Данное руководство охватывает установку Shipyard, подключение инструмента к серверам Docker и использование его для создания новых контейнеров. В результате можно будет управлять хостами Docker при помощи Shipyard.
Требования
Для выполнения руководства нужно заранее настроить сервер Ubuntu 14.04 и установить Docker 1.5.0.
Примечание: Репозиторий Ubuntu содержит устаревшую версию пакета docker.io, потому рекомендуется установить Docker вручную.
Для выполнения приведённых ниже команд нужны права root. Просто войдите в систему как пользователь root.
1: Установка Shipyard
После установки Docker инструмент Shipyard устанавливается совсем просто, поскольку он поставляется как образ Docker. Нужно просто загрузить образы из базы Docker и запустить необходимые контейнеры
Для начала создайте контейнер data volume для хранения базы данных Shipyard. Сам по себе этот контейнер ничего делать не будет – это просто удобный способ размещения всех данных Shipyard.
docker create --name shipyard-rethinkdb-data shipyard/rethinkdb
Итак, необходимый контейнер создан, теперь можно запустить сервер БД Shipyard и связать его с контейнером.
docker run -it -d --name shipyard-rethinkdb --restart=always --volumes-from shipyard-rethinkdb-data -p 127.0.0.1:49153:8080 -p 127.0.0.1:49154:28015 -p 127.0.0.1:29015:29015 shipyard/rethinkdb
Это запустит контейнер RethinkDB (это распределённая БД) и сделает его доступным только для сервера. Чтобы проверить это, попробуйте открыть в браузере http://your_server_ip:49153, и на экране ничего не появится.
База данных Shipyard готова, теперь можно запустить сам инструмент Shipyard. Для этого запустите другой контейнер и соедините его с БД.
docker run -it -p 8080:8080 -d --restart=always --name shipyard --link shipyard-rethinkdb:rethinkdb shipyard/shipyard
Теперь можно получить доступ к Shipyard на порте 8080.
2: Доступ к Shipyard
Итак, Shipyard запущен. Теперь попробуйте получить к нему доступ. Это можно сделать через графический интерфейс, командную строку (CLI) или API. Начнем с командной строки.
Управление Shipyard из командной строки
Чтобы открыть доступ к Shipyard из командной строки, запустите следующий контейнер:
docker run -ti --rm shipyard/shipyard-cli
Флаг -ti запускает контейнер в интерактивном режиме, опция –rm запускает контейнер как одноразовый (то есть, после завершения работы он будет автоматически удалён).
На экране появится командная строка Shipyard:
shipyard cli>
Чтобы получить список доступных команд, используйте:
shipyard help
Эта командная строка ещё не подключена к установке Shipyard. Чтобы установить то соединение, введите:
shipyard login
Программа запросит URL. Введите:
http://your_server_ip:8080
Далее будет предложено ввести имя пользователя и пароль; эти данные устанавливаются по умолчанию: имя пользователя – admin, пароль – shipyard. После этого вернётся командная строка shipyard.
Итак, вы вошли в Shipyard как администратор. Использование стандартного пароля влечёт огромный риск для безопасности, его необходимо изменить.
shipyard change-password
Выберите и подтвердите надёжный пароль. Чтобы закрыть командную строку Shipyard, нажмите CTRL+D.
Как видите, командную строку Shipyard необходимо каждый раз подключать заново, потому её можно использовать в любой системе, в которой работает Docker.
Управление Shipyard при помощи графического интерфейса
Теперь рассмотрим графический интерфейс Shipyard. Он находится по ссылке:
http://your_server_ip:8080
На экране появится форма авторизации. Введите имя пользователя admin и установленный в предыдущем разделе пароль.
Затем Shipyard покажет вкладку Engines и сообщит, что в кластере Shipyard пока что эта вкладка пуста. В терминологии Docker engine – это хост Docker, способный запускать контейнеры. Сюда нужно добавить все серверы Docker, которыми будет управлять Shipyard.
3: Добавление серверов
Сервер, на котором только что был развёрнут Shipyard, также является хостом Docker, следовательно, можно управлять Shipyard с помощью этого сервера. но сначала нужно добавить этот сервер во вкладку engine.
По умолчанию Docker слушает сокет Unix /var/run/docker.sock, но этот сокет недоступен для Shipyard. Потому нужно настроить Docker для прослушивания запросов на порте. Дл этого отредактируйте конфигурационный файл Docker:
nano /etc/default/docker
Добавьте в него строку:
DOCKER_OPTS="-H tcp://your_server_ip:4243 -H unix:///var/run/docker.sock"
Теперь Docker может принимать запросы на порте 4243 (но только запросы данного сервера). Перезапустите Docker, чтобы обновить настройки.
service docker restart
Это также перезапустит контейнеры Shipyard. Поскольку контейнеры были запущены с опцией –restart=always, они перезапустятся автоматически. Чтобы проверить это, запустите:
docker ps
Если по какой-либо причине контейнеры Shipyard не были перезапущены, перезапустите их вручную:
docker start shipyard-rethinkdb shipyard
Итак, теперь хост Docker настроен должным образом, и его можно добавить в Shipyard в качестве engine. Откройте графический интерфейс Shipyard и перейдите во вкладку Engines. Нажмите кнопку + Add.
Заполните следующие поля:
- Name: Введите любое имя, которое позже позволит отличить этот сервер от остальных (например, имя хоста).
- Labels: определяет, какие контейнеры будут работать на этом хосте. В зависимости от того, для чего используется этот сервер, задайте метки production или test.
- Address: укажите только что открытый порт Docker (http://your_server_ip:4243).
Затем нажмите кнопку Add в нижней части страницы. Shipyard подключится к хосту Docker, подтвердит соединение и добавит хост как engine. После этого вернётся вкладка Engines. Сначала хост будет находиться offline, но через пару секунд это изменится, и вы сможете просмотреть информацию о хосте Docker.
4: Развёртывание контейнеров при помощи Shipyard
Теперь хост Docker взаимодействует с Shipyard. Попробуйте поработать с контейнерами, запустить, остановить и развернуть их.
Откройте графический интерфейс Shipyard и найдите вкладку Containers. В ней перечислены все контейнеры, запущенные на каждом добавленном в Shipyard хосте Docker. В данном случае она покажет три контейнера, два из которых будут запущены.
Попробуйте развернуть новый блог WordPress. Для этого нужно развернуть контейнеры MySQL и WordPress при помощи официального репозитория образов Docker.
Нажмите кнопку + Deploy. Следующий экран позволит настроить контейнер перед развёртыванием. Введите в поля соответствующие данные.
- Image: введите mariadb. (MariaDB – это открытое ответвление MySQL.)
- Container Name: введите любое имя, например, mysql-test.
- Environment: переменные окружения, которые можно использовать, будут указаны в описании образа контейнера. В данном случае это MYSQL_ROOT_PASSWORD=6f23b328e7.
- Type: определяет тип развёртывания контейнера на нескольких системах. В этом случае введите service.
- Labels: используется для соединения контейнеров и хостов (engines). Введите метку, указанную ранее в настройках engine.
- Restart Policy: определяет, нужно ли автоматически перезапускать контейнер в случае ошибки или перезагружать Docker. В этом случае введите no.
Затем нажмите Deploy. Запуск контейнера займёт некоторое время. После этого вернётся список контейнеров, в котором появится только что добавленный mysql-test.
Вот так просто и быстро Shipyard разворачивает контейнеры Docker.
Повторите процесс, чтобы развернуть контейнер WordPress, соединённый с контейнером MySQL. Нажмите кнопку + Deploy и введите следующие данные:
- Image: wordpress
- Name: wordpress-test
- Links: mysql-test:mysql
- Type: service
- Labels: Введите метку, указанную ранее в настройках engine.
- Restart Policy: no.
Чтобы содержимое контейнера WordPress было в открытом доступе, нужно открыть его порт 80. Для этого нажмите на плюс рядом с заголовком Port.
В поле Protocol выберите TCP, поле IP оставьте пустым, в поле Port введите 1234, в Container Port задайте 80.
Затем можно нажать Deploy. На развёртывание контейнера уйдёт некоторое время, после чего новый контейнер wordpress-test появится во вновь открывшемся списке. Более подробную информацию о нём можно получить по ссылке в списке.
В разделе Ports можно видеть, что порт контейнера WordPress 80 публикуется на порт сервера (1234). Как видите, Shipyard представляет эти данные в виде ссылки, что позволяет перейти на публикуемый порт.
Перейдите по этой ссылке. Она откроет мастер установки WordPress. Предоставьте все запрашиваемые данные и авторизуйтесь в WordPress, чтобы просмотреть сайт.
Заключение
Теперь вы умеете развёртывать приложения на хосте Docker при помощи Shipyard!
Docker Registry предоставляет огромнейшее количество приложений. Попробуйте поработать с каким-нибудь из них. К примеру, можно развернуть контейнер Nginx, чтобы обеспечить новый сайт WordPress боле надёжным сервером.
Tags: Docker, RethinkDB, Shipyard, Ubuntu 14.04, WordPress