Каково влияние перезапуска демона docker на создание контейнера? - PullRequest
0 голосов
/ 27 мая 2019

В настоящее время я создаю образ докера для среды сборки C: он будет использоваться в качестве базового образа для цепочки инструментов CI, серверы сборки и разработчики смогут использовать эту же цепочку инструментов для создания образов прошивки.

Для этой среды сборки я должен использовать лицензионный компилятор. В настоящее время я использую пробную лицензию и сопоставляю файл лицензии с контейнером - он будет заменен подключением к серверу лицензий. В любом случае: мне нужно установить MAC-адрес контейнера, чтобы он работал.

Короче говоря: я создаю контейнер, используя:

docker run -it --rm --mac-address 78:4f:43:5c:25:a3 -v $(pwd):/project -v $(pwd)/license:/licenses builder:latest /bin/bash

В первый раз после запуска демона docker контейнер работает нормально, я могу просто cd войти в проект, нажать make и процесс сборки работает.

Как только я выйду из вышеприведенного контейнера, он удаляется, как и предполагалось: я хочу иметь возможность запускать этот контейнер в любое время, даже если бы я мог запустить его с помощью -d (демон).

Проблема

Странная вещь заключается в том, что компилятор жалуется на неверную лицензию, как только я хочу воссоздать контейнер, используя ту же самую команду , то есть, если я выполню вышеупомянутую команду снова, без контейнеров работает в фоновом режиме (таким образом, без помех), компилятор не может проверить лицензию:

  • [ок] Запустить Docker
  • [ok] Создать контейнер для сборки (команда выше)
  • [ok] Сборка в контейнере
  • [ok] Выход из контейнера
  • [ok] Создать контейнер для сборки (команда выше)
  • [- FAIL-] Сборка в контейнере: ошибка лицензии

Я предполагаю, что это как-то связано с сетевым подключением: этот компилятор работает только онлайн, поэтому он проверяет правильность каждый раз, когда его вызывают. Для второго контейнера это не удалось.

Я могу обойти эту проблему, перезапустив Docker полностью. Это занимает много времени, поэтому это не совсем правильный подход.

Вопрос

Таким образом, мой вопрос: что именно происходит при повторном запуске демона docker, который может повлиять на мой контейнер? Я предполагаю, что сети докеров воссозданы, но это не должно иметь никакого влияния?

Трудно воссоздать эту проблему с помощью более простой демо-версии, поэтому ее немного сложно объяснить. Пока я проверил

  • ifconfig выдает одинаковый вывод в обоих контейнерах (MAC-адрес o.k.)
  • docker inspect только воссоздает хэши, хотя NetworkID (Networks> bridge> NetworkID) остается тем же, поэтому я проверил, могу ли я перезапустить docker network bridge, но я не могу (также не может быть удален, так как предварительно определены)
  • оба контейнера имеют доступ к интернету (ping работает)

Любой вклад приветствуется.

РЕДАКТИРОВАТЬ: Использование Docker для Mac Docker version 18.09.2, build 6247962

...