Как запустить контейнер в фоновом режиме при использовании docker compose
Я использовал docker-compose up -d . но мой контейнер Docker завершает работу после выполнения моего сценария. Это мой ниже файл docker-compose.yml. Я хочу запустить докер контейнер в фоновом режиме.
version: "3"
services:
master:
build: .
command: sh /opt/spark/sbin/start-master.sh
ports:
- 8080:8080
- 8081:8081
- 7077:7077
- 4040:4040
worker:
depends_on:
- master
deploy:
- replicas: 2
- endpoint_mode: dnsrr
build: .
command: sh /opt/spark/sbin/start-slave.sh spark://172.17.0.2:7077
ports:
- 9080:8080
- 9081:8081
- 9077:7077
- 9040:4040
================
$ docker container ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
975a3af7dc27 mysparkdocker_master "sh /opt/spark/sbin/…" 41 minutes ago Exited (0) 18 seconds ago mysparkdocker_master_1
e52cf60c820c mysparkdocker_worker "sh /opt/spark/sbin/…" 41 minutes ago Exited (0) 17 seconds ago mysparkdocker_worker_1
===================================
1 ответ
Проблема заключается в том, что ваши сценарии оболочки, вероятно, разрабатывают себя для создания демона, тогда как в модели Docker вы на самом деле не хотите, чтобы они сами демонизировались, потому что процесс завершится и тем самым остановит контейнер.