Создайте новый образ докера против запуска команд оболочки - PullRequest
0 голосов
/ 25 января 2019

мы работаем с ткань-ок изображение докера. он не поставляется с установленным scp, поэтому у нас есть два варианта:

Вариант 1: создать новое изображение, как описано здесь

Вариант 2: установить scp из оболочки при запуске контейнера

мы хотели бы понять, каковы плюсы и минусы каждого из них.

Ответы [ 3 ]

0 голосов
/ 25 января 2019

Вариант 1: позволяет вам строить дальше, создает стабильное состояние, вы можете проверить / протестировать изображение перед выпуском

Вариант 2: требуется больше времени для запуска, требуется подключение к сети во время запуска контейнера, сложнее отслеживать / понимать и управлять программным стеком, заблокированным, например, в. bash-скрипты, которые запускают dockers против Dockerfile и любые технологии, которые вы в конечном итоге будете использовать для оркестровки контейнеров.

В конечном счете, я использую вариант 2 только для обнаружения, подтверждения концепции или опробования чего-либо. Как только я узнаю, что мне нужен определенный контейнер на постоянной основе, я создаю правильный образ через Dockerfile.

0 голосов
/ 25 января 2019

Опция 1:

  • BUILD изображения длиннее, но вы выполняете его только в первый раз
  • RUN быстрее
  • Вам не нужно подключение к Интернету на RUN
  • Включите проверку различных шагов
  • Разрешить отслеживаемость

Вариант 2:

  • RUN длиннее
  • Вам необходимо подключение к Интернету на RUN
  • Сложнее отследить
0 голосов
/ 25 января 2019

Вы должны рассмотреть свой вариант 2 не для начала. Либо создайте собственный образ, либо используйте привязку к каталогу хоста (опция docker run -v /host/path:/container/path), чтобы внедрить нужные данные; Вероятно, я бы предпочел опцию bind-mount.

Чрезвычайно обычным является docker rm контейнер, и когда вы это делаете, любые изменения, сделанные вами локально в контейнере, теряются. Например, если есть новая версия программного обеспечения или критическое обновление для системы безопасности, вам необходимо заново создать контейнер с новым образом. Вы никогда не должны устанавливать программное обеспечение в интерактивную оболочку в контейнере, особенно если вы собираетесь использовать его для копирования данных, необходимых вашему приложению: вам придется повторять этот шаг каждый раз, когда вы удаляете и воссоздаете контейнер.

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