【问题标题】:How to run container in background while using docker compose如何在使用 docker compose 时在后台运行容器
【发布时间】:2018-11-16 11:51:46
【问题描述】:

我使用了 docker-compose up -d 。 但我的 docker 容器在执行我的脚本后退出。这是我下面的 docker-compose.yml 文件。我想在后台运行 docker 容器。

    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

====================================

【问题讨论】:

标签: docker docker-compose


【解决方案1】:

问题是您的 shell 脚本可能会派生出自己来创建一个守护进程,而在 Docker 模型中,您实际上不希望它们自己守护进程,因为进程会退出并因此停止容器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 2021-10-17
    相关资源
    最近更新 更多