Portainer — управляем докерами
Использование микросервисов на базе контейнеров docker становится все более популярным — это удобно, позволяет легко расширять проекты, переносить данные и существенно улучшает безопасность для многих типов приложений. Многие пользователи предпочитают использовать удобную графическую панель управления — как раз для них мы рекомендуем удобную панель управления Portainer.
Portainer устанавливается в виде обычного docker-контейнера, как и другие docker-приложения. Как обычно, воспользуемся любой SSD VDS, а в качестве операционной системы выберем Centos 7. После инсталляции операционной системы воспользуемся любым SSH-клиентом и подключимся к нашему серверу. Установим поддержку Docker, iptables и запустим все необходимые сервисы:
1 2 3 4 5 6 7 |
systemctl stop firewalld systemctl disable firewalld yum -y install iptables-services yum -y install epel-release curl -fsSL https://get.docker.com/ | sh systemctl start docker systemctl enable docker |
Теперь установим и запустим контейнер с Portainer:
1 2 |
docker volume create portainer_data docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer |
Первая команда создает постоянное хранилище portainer_data — это необходимо для того, чтобы при переустановке или обновлении панели ее данные и настройки были сохранены. Вторая же — инсталлирует и запускает Portainer, интерфейс управления которой будет доступен на порту 9000.
Проверим, что контейнер с нашей панелью управления запущен и работает — воспользуемся командой docker ps:
1 2 3 |
[root@docker-test ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d0edb80f6cf7 portainer/portainer "/portainer" 7 seconds ago Up 6 seconds 0.0.0.0:9000->9000/tcp mystifying_heisenberg |
Отлично! Откроем любимый броузер и подключимся к нашему серверу, указав порт 9000:
Устанавливаем пароль, а затем выбираем режим работы нашей панели. Так как у нас используется только один сервер, выберем локальный режим.
Теперь перейдем к нашему Endpoint, его имя local. Попробуем развернуть какое-нибудь приложение — например, WordPress вместе со всеми необходимыми компонентами.
В разделе App Templates выбираем шаблон с названием WordPress.
Этот шаблон включает в себя два контейнера — сервер MySQL и WordPress вместе с PHP и Apache. Указываем желаемый пароль MySQL (он будет сразу указан и в настройках WordPress, и в учетной записи пользователей MySQL), запускаем процесс установки и через пару минут наш стэк готов!
Как обычно, можно проверить, какие контейнеры у нас запущены — в командной строке это делается с помощью команды docker ps:
1 2 3 4 5 |
[root@docker-test ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 91b7377be5b8 wordpress:latest "docker-entrypoint.s…" 3 hours ago Up 3 hours 0.0.0.0:32768->80/tcp wp1_wordpress_1 71a7f0d41f5f mysql:5.7 "docker-entrypoint.s…" 3 hours ago Up 3 hours 3306/tcp, 33060/tcp wp1_db_1 1a2fa98185df portainer/portainer "/portainer" 3 hours ago Up 3 hours 0.0.0.0:9000->9000/tcp mystifying_heisenberg |
Обратите внимание — WordPress будет по-умолчению доступен на нестандартном внешнем порту — в данном случае 32768. При необходимости, в настройках контейнера wordpress можно сменить порт на 80, однако лучше будет установить дополнительно контейнер с nginx и на базе этого продукта сделать проксирование трафика, включить SSL и так далее. Кроме того, использование nginx для обработки внешних соединений также является оправданным в том случай, если потребуется разместить еще один сайт или приложение. В этом случае дополнительные приложения будут использовать отдельные, уникальные порты, а с помощью nginx и использования директив proxy_passs можно будет настроить одновременную работу практически неограниченного количества приложений в рамках одного docker-узла.
Docker — удобный и мощный инструмент. Рекомендуем!