Интеграция ISPmanager 5 c Docker

Материал из ISPWiki
Перейти к: навигация, поиск


Введение

Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы. В данный момент, в панели ISPmanager Lite Docker представлен в виде альтернативных версий MySQL.

Установка

Сейчас установка Docker производится во время установки на сервер первой альтернативной версии MySQL

Обновление контейнеров

Каждый контейнер создается на основе определенного образа, хранящегося в репозитории докера, которые периодически обновляются. Так как в данный момент, в панели поддерживаются только mysql-контейнеры, запуск обновления был вынесен нами на форму управления серверами баз данных. Запуск обновления контейнеров может быть отложен. Для этого на форме обновления контейнеров достаточно установить галочку Отложенный запуск и выбрать удобное время. В момент проверки возможности обновления контейнеров, все образы будут заново скачаны из репозиториев докера. Их версии будут сравнены с версиями образов контейнеров. Каждый контейнер с устаревшим образом будет обновлен.

Не удаляется мертвый контейнер

Способ 1.

Итак, если вы получите сообщение вроде этого:

Error response from daemon: Cannot destroy container elated_wozniak: Driver devicemapper failed to remove root filesystem 656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3: Device is Busy

просто запустите это:

$ umount /var/lib/docker/devicemapper/mnt/656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3

Способ 2.

Вы также можете удалить контейнеры dead с помощью этой команды

$ docker rm $(docker ps --all -q -f status=dead)

Способ 3.

Ошибка: Error response from daemon: driver "overlay" failed to remove root filesystem for <some-id>: remove /var/lib/docker/overlay/<some-id>/merged: device or resource busy

3.1. Проверьте, какие другие процессы также используют ресурсы докеров

$ grep docker /proc/*/mountinfo

который выводит что-то вроде этого, где число после /proc/ равно pid:

/proc/10001/mountinfo:179...
/proc/10002/mountinfo:149...
/proc/12345/mountinfo:159 149 0:36 / /var/lib/docker/overlay/...

3.2. Проверьте имя процесса выше pid

$ ps -p 10001 -o comm=
dockerd
$ ps -p 10002 -o comm=
docker-containe
$ ps -p 12345 -o comm=
nginx   <<<-- This is suspicious!!!

Итак, nginx с pid 12345, похоже, также использует /var/lib/docker/overlay/..., поэтому мы не можем удалить связанный контейнер и получить ошибку device or resource busy. (См. здесь для обсуждения того, как nginx разделяет одно и то же пространство имен монтирования с контейнерами докеров, тем самым предотвращает его удаление.)

3.3. Остановить nginx,

$ service nginx stop

3.4. Удалить контейнер успешно.

$ docker rm <container-id>

3.5 Запустить процесс

$ service nginx start

3.6 Если процессов много, то лучше перезагрузить систему