LINUX.ORG.RU

Странности с docker

 


0

1

Приветствую. Столкнулся со следующей проблемой. На домашней машине хостятся несколько сервисов, к которым я подключаюсь, когда нахожусь вне дома. Суть в том, что все контейнеры, в которых есть HEALTHCHECK, спустя некоторое время переходят в unhealthy, но работать продолжают, то есть я могу к ним подключиться и пользоваться как обычно. docker stop, docker kill и все остальное на них не воздействует. Если попытаться перезапустить контейнер, то он останавливается и запустить его снова можно будет только после перезагрузки всей системы. Не сказать, что это особо мешает, но все же хотелось узнать, сталкивался ли кто с таким ранее. Каких-либо предположений нет, сначала думал, что виновата btrfs, но переустановка на ext4 не помогла. Система Arch Linux (5.8.5-zen1-1-zen)

docker, btrfs, Arch Linux.... Куда же катится мир?

King_Carlo ★★★★★ ()

сначала думал, что виновата btrfs, но переустановка на ext4 не помогла

В любой непонятной ситуации переустанавливай арч. Вся суть в одном предложении.

Artamudo ★★★ ()

Не пробовали запрыгнуть в контейнер и руками выполнить команду, описанную в healthcheck ? Может это как-то прояснило бы ситуацию.

spirit ★★★★★ ()
Ответ на: комментарий от Artamudo

Тут дело в том, что до этого у меня стояла f2fs, которая просто крашилась среди белого дня. Решил попробовать btrfs и, встретив подобное, решил просто поставить ext4, годами стабильно работавшая, но, увы, это не оказалось решением проблемы

RyanGosling ()
Ответ на: комментарий от Artamudo

В любой непонятной ситуации переустанавливай арч

Ага, желательно со сносом всех «бэкапов» и данных.

Korchevatel ★★★★★ ()
Ответ на: комментарий от spirit

Не пробовал, но спасибо за наводку, попробую, как снова выпадет в unhealthy. Странно только, конечно, что это происходит со всеми сразу

RyanGosling ()

По симптомам похоже на проблемы с дисковой подсистемой. Но без логов, конечно, понять это невозможно. Какой storage driver используется? Попробуйте поменять на другой. Или поменять версию демона докера, или ядра, или железо.

ugoday ★★★★★ ()
Ответ на: комментарий от ugoday

На данный момент используется overlay2. Когда корень был установлен на btrfs, то использовалась также btrfs. Возможно вы правы насчет проблем с дисковой подсистемой, но все же настораживает, что все остальное работает нормально.

Вот только что выпал один из контейнеров. Все, что есть в логах:

archlinux dockerd[1444]: time="2020-09-01T20:27:23.292005399+05:00" level=warning msg="Health check for container 8bb2cfbfef05036395a4c2625ce83bfcda6776fc2ed77438b00da5080a3f5da9 error: context deadline exceeded"
RyanGosling ()
Ответ на: комментарий от RyanGosling

но все же настораживает, что все остальное работает нормально.

У меня был похожий случай. Всё работает, но иногда докер переводит дисковую подсистему в странное состояние. Рядом стоял такой же сервер с той же версией ядра-докера-убунты и всё работало. В моём случае вылечилось переходом с aufs на overlayfs.

Все, что есть в логах:

а в dmesg’е ничего странного нету?

ugoday ★★★★★ ()
Ответ на: комментарий от ugoday

а в dmesg’е ничего странного нету?

К сожалению, нет. Вчера вечером откатил докер и поставил lts ядро, но в конечном итоге на утро все равно все контейнеры выпали. Попробую еще поменять storage driver, может поможет все-таки

RyanGosling ()

Docker надо запускать либо на специально выделенной физической машине с поддерживаемой ОС, либо на специально выделенной виртуальной (тоже с поддерживаемой ОС). Рекомендую виртуализацию.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.