Короткая заметка о том, как упростить себе жизнь при работе с докером. Если честно, это это единственная админка, которую я пробовал ставить, но на данный момент она покрывает 80% моих задач, и лишь в 20% случаев приходится заходить в консоль и писать команды ручками, в частности, при работе с docker-compose. Наверняка существуют более продвинутые решения, но это уже тема для полноценного ресёрча.

Картинки по запросу Portainer docker compose

Этот web-ui для управления докером поставляется в виде докер-контейнера, что весьма удобно и демонстративно. Далее приведу краткую инструкцию по установке и настройке Portainer по мотивам этого мануала.

Шаг 1. Создать папку для хранения данных, которые не желательно терять.

mkdir /root/portainer/data

Шаг 2. Запустить контейнер, пробросить в него папку для данных, сокет для доступа к докеру и порт для доступа.

docker run --name portainer -d -p 9000:9000 -v /root/portainer/data:/data -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

Шаг 3.

Portainer GUI: http://<serverip>:9000

Далее можно манипулировать контейнером уже по имени, указанному во время запуска, в моём случае это —name portainer. Например:

docker stop portainer
docker start portainer

Для того, чтобы Portainer стартовал при загрузке системы, нужно немного видоизменить команду запуска, добавив —restart=always. Если контейнер уже был создан — предварительно его удалить. Не нужно бояться потери данных, так как они вынесены из контейнера в папку хоста из шага 1.

docker rm portainer
docker run --name portainer --restart=always -d -p 9000:9000 -v /root/portainer/data:/data -v /var/run/docker.sock:/var/run/docker.sock portainer/portainer

Теперь можно перезагрузить сервер и убедиться, что контейнер с Portainer загружается автоматически. Если перезагрузка не допустима, то можно просто остановить и запустить сам докер.

service docker stop
service docker start

В одной из следующих заметок я расскажу про свои настройки брандмауэра с помощью iptables при работе с докером.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *