В чем разница между auto_remove и remove в Docker SDK для python - PullRequest
1 голос
/ 11 января 2020

Я учусь использовать docker SDK. Я понимаю, что контейнеры должны быть удалены после запуска, в противном случае требуется обрезка позже. Я вижу, что в client.containers.run есть два логических флага:

  • auto_remove (bool) - включить автоматическое удаление контейнера на стороне демона при выходе из процесса контейнера.
  • remove (bool) - Удалить контейнер, когда он закончит работу. По умолчанию: False

Какая разница? Если auto-remove равно on daemon side, с какой стороны remove включено? Угол? К какой стороне мне присоединиться ??


ref: https://docker-py.readthedocs.io/en/stable/containers.html

1 Ответ

2 голосов
/ 11 января 2020

На самом деле это именно то, что: AutoRemove является одним из параметров «создать контейнер» Docker API-вызова , но опция remove сигнализирует клиентскую библиотеку удалить контейнер после его выхода .

Настройка auto_remove: True, вероятно, более надежна (контейнер все равно будет очищаться при сбое процесса координатора), но если контейнер завершится неудачно с этой опцией, то container.run() не вернет свой stderr . Если вы установите detach: True для получения объекта Container, то вы не сможете использовать remove: True (он преобразуется в в auto_remove: True), но ваш код может container.remove() после его выхода .

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