Docker in docker в gce --create-with-container приводит к ошибке сегментации (ядро сброшено) - PullRequest
1 голос
/ 28 апреля 2020

Я пытаюсь запустить docker в docker в gce, но безрезультатно. Я использовал аналогичные настройки на хосте, и он работал нормально. Тем не менее, при попытке с --create-with-container я получаю:

Segmentation fault (core dumped)
Segmentation fault (core dumped)

У меня docker установлен в образе. Работает нормально, когда образ запускается на обычном хосте. Вот как я пытаюсь это сделать:

gcloud compute instances \
  create-with-container docker-in-docker-on-cge \
  --container-restart-policy=never \
  --container-privileged \
  --container-mount-host-path=host-path=/var/run/docker.sock,mount-path=/var/run/docker.sock \
  --container-mount-host-path=host-path=/usr/bin/docker,mount-path=/usr/bin/docker \
  --container-image=$MYIMAGE

Как вы думаете, это вообще возможно, и если да, что мне делать?

Спасибо

1 Ответ

1 голос
/ 29 апреля 2020

Когда вы используете команду gcloud compute instances create-with-container для создания экземпляра виртуальной машины GCE, на котором выполняется образ контейнера, развертывается оптимизированная для контейнера ОС (COS). Эта операционная система оптимизирована для работы с Docker контейнерами. Но ему не хватает многих компонентов, которые вы имели в типичном Linux дистрибутиве.

Он имеет ряд ограничений, например, ядро ​​COS заблокировано; вы не можете установить сторонние модули ядра или драйверы. Контейнерные приложения, которые зависят от модулей ядра, драйверов и других дополнительных пакетов, которые недоступны в COS, могут не работать. Это своего рода среда блокировки с небольшой поверхностью атаки, которая обеспечивает безопасность ваших контейнеров.

Подробнее см. Обзор ОС, оптимизированной для контейнеров

Маловероятно, что конфигурация Docker -in- Docker в COS поддерживается Google.

Кроме того, есть хорошие объяснения того, почему запуск вложенной конфигурации Docker проблематичен и какой обходной путь может быть:

Можно ли запускать docker изнутри docker?

Docker in Docker?

Оба перечисленные выше основаны на оригинальной статье автора Docker -in- Docker feature Jérôme Petazzoni: Использование Docker -in- Docker для CI или среды тестирования? Подумайте дважды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...