когда запускать или запускать docker контейнер - PullRequest
1 голос
/ 15 февраля 2020

Насколько я понял, 'docker create' создает новый контейнер из изображения, 'docker start' запускает контейнер (применяются условия, при которых контейнер не останавливается снова сразу) и 'docker run 'делает и то, и другое (с некоторыми различиями в деталях, но давайте пока проигнорируем их).

Что я не понимаю, так это когда использовать какой. Позвольте мне объяснить:

Для обычного исполняемого файла я запускаю его, начиная новый процесс. Когда процесс умирает, он исчезает, и я снова запускаю исполняемый файл, создавая новый процесс. Другого пути нет.

Некоторые исполняемые файлы становятся демонами и продолжают работать, поэтому теперь есть три способа: взаимодействовать с работающим демоном, запускать второй или останавливаться и перезапускаться. За очень немногими исключениями запуск второго экземпляра демона бесполезен, и вы обычно взаимодействуете с запущенным экземпляром, перезапуская его только тогда, когда он заблокирован или изменил свою конфигурацию. Итак, еще раз, мне понятно, как использовать такую ​​программу.

Для docker приложений, мне все не так ясно. Конечно, у нас тоже есть демоны и не демоны, но для них обоих не ясно, стоит ли мне их использовать, создав новый контейнер или перезапустив существующий контейнер. Для демонов есть добавленное различие запуска неработающего демона и перезапуска работающего демона, каждый из которых может быть выполнен с существующим или новым контейнером. Кроме того, существует третий класс приложений, помимо fire-and-Forgot и daemons, а именно VM-подобные контейнеры, которые просто имеют файловую систему и оболочку и содержат несколько программ для запуска.

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

Из тех приложений, основанных на docker, которые я использовал, ни одно из них, по-видимому, не описало это в своем руководстве, так что, похоже, существуют рекомендации по созданию или повторному использованию контейнеров, но тогда я мог бы не найти ничего об этом на inte rnet либо. Я мог только найти сайты, которые объясняют механику этих команд, но не содержат лучших практик.

Когда я должен создать новый контейнер, и когда я должен перезапустить существующий? Если "это зависит", как вы узнаете?

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