Docker堆栈:Apache服务将不会启动

Docker堆栈:Apache服务将不会启动,apache,docker,docker-swarm,Apache,Docker,Docker Swarm,docker堆栈中的Apache服务从未启动(或者更准确地说,保持重新启动)。知道发生了什么吗 容器为以下容器中的容器: 我的docker-compose.yml是: version: '3' services: db: image: mysql:5.7 volumes: - ../db_files:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWO

docker堆栈中的Apache服务从未启动(或者更准确地说,保持重新启动)。知道发生了什么吗

容器为以下容器中的容器:

我的docker-compose.yml是:

version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - ../db_files:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: toor
       #MYSQL_DATABASE: testdb
       #MYSQL_USER: docky
       #MYSQL_PASSWORD: docky
     ports:
      - 3306:3306
   p71:
#     depends_on:
#       - db
     image: php:7.1
     build:
      context: .
      dockerfile: Dockerfile71
     links:
      - db
     volumes:
      - ../www:/var/www/html
      - ./php.ini:/usr/local/etc/php/conf.d/php.ini
      - ./virtualhost-php71.conf:/etc/apache2/sites-available/001-virtualhost-php71.conf
      - ../logs/71_error.log:/var/www/71_error.log
      - ../logs/71_access.log:/var/www/71_access.log
     environment:
       DB_HOST: db:3306
       DB_PASSWORD: toor
     ports:
      - "81:80"

   pma:
     depends_on:
       - db
     image: phpmyadmin/phpmyadmin
我从以下几点开始:

docker stack deploy -c docker-compose.yml webstack
db和pma服务正确启动,但p71服务继续重新启动

docker service inspect webstack_p71
表明:

    "UpdateStatus": {
        "State": "paused",
        "StartedAt": "2018-01-19T16:28:17.090936496Z",
        "CompletedAt": "1970-01-01T00:00:00Z",
        "Message": "update paused due to failure or early termination of task 45ek431ssghuq2tnfpduk1jzp"
    }
正如docker-composer.yml所示,我已经注释掉了服务依赖项,以避免在第一次运行时不满足依赖项时出现故障

$docker服务日志-f webstack_第71页

$docker服务ps——无trunc webstack_p71

我应该怎么做才能让Apache/PHP(p71)服务运行

独立运行时,所有容器均可工作: $docker build-f Dockerfile71-t php71。
$docker run-d-p 81:80 php71:最新版本

首先,
依赖于
选项在
第3版
群集模式下不起作用(请参阅)

简言之

dependens_on在与docker stack deploy一起使用时是不可操作的。群模式 服务失败时会重新启动,因此没有理由延迟 他们的创业。即使他们失败几次,他们最终也会失败 恢复

当然,即使
dependens\u on
不起作用,
p71
应该能正常工作,因为它会在故障后重新启动

因此,我认为在运行
p71
服务时出现了一些错误。这就是为什么服务不断重新启动的原因。然而,我不知道在你提供的信息下,服务内部发生了什么

您可以通过检查日志来检查跟踪

$ docker service logs -f webstack_p71
和错误消息

$ docker service ps --no-trunc webstack_p71   # check ERROR column

docker服务日志webstack_p71显示了什么?添加了日志说明