Есть 2 режима работы Docker контейнера
- Отдельный режим - В этом режиме вы выполняете команду и прекращает контейнер после того, как команда выполнена
- Foreground режим - это режим, когда вы запускаете Баш оболочку, но также прекратит контейнер после выхода из корпуса
Что вам нужно, это Фоновый режим. Это не указано в параметрах, но есть много способов сделать это.
- Выполнение бесконечной команды в отдельном режиме, поэтому команда никогда не заканчивается, и контейнер не останавливается. Я обычно использую «хвост -f/DEV/нуль» просто потому, что это довольно легкий вес и/DEV/нуль присутствует в большинстве Linux-системы
докер запуска -d --name = Имя контейнера хвост - е/DEV/нуль
Затем вы можете колотить, чтобы контейнер работает так:
докер Exec -это имя/бен/Баш -l
Если вы используете параметр -l, он будет входить в качестве режима входа в систему, который будет выполнять .bashrc, как обычный вход в bash. В противном случае вам нужно снова включить снова вручную вручную
- Точка входа - вы можете создать любой скрипт sh, такой как /entrypoint.sh. в entrypoint.sh вы можете запустить любой бесконечный сценарий, а
#!/bin/ш
#/EntryPoint.ш
перезапуск службы MySQL
...
хвост -f/DEV/нуль < - это никогда не заканчивается
После сохранения entrypoint.sh, CHMOD а + х на нем, выход докер Баш, затем запустить его так:
Docker запустить --name = имя контейнера --entrypoint /entrypoint.sh
Это позволяет каждому контейнеру иметь свой собственный сценарий запуска, и вы можете запустить их, не заботясь о вложении сценарий запуска каждый раз, когда
это причина, мне нужно запустить его в режиме отдельностоящий/фона. как насчет использования «daemontools». Кто-то использовал это и работает ли он на мое дело? http://stage1.io/blog/running-services-in-a-docker-container-with-daemon-tools/ –
Что значит «it» в «Мне нужно запустить его»? Нет проблем с отсоединением контейнера, используя только что описанный процесс. –
Нормальным решением является использование диспетчера процессов, а Docker, похоже, склоняется к супервизору. Phusion использует runit. –