我有这个 docker-composer.yml 文件,它启动了 4 项服务:一个 Web 门户、一个 mysql db、一个 elastisearch 和 kibana 服务。
如果我使用 mysql:latest 作为数据库镜像,我会看到所有 4 个服务都在启动。但是如果我使用 mysql:5.7 作为镜像,数据库不会启动。
我不明白为什么。我尝试单独启动数据库映像,它可以工作。但它与其余部分一起似乎不起作用。
version: '3'
services:
portal:
image: glassofwhiskey/liferay-portal:7.0-ce-ga5-dev
networks:
- lfrnet
ports:
- "8000:8000"
- "8080:8080"
- "11311:11311"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: secret
networks:
- lfrnet
ports:
- "3306:3306"
volumes:
- db-data:/var/lib/mysql
elasticsearch:
image: glassofwhiskey/elasticsearch:2.4
environment:
ES_JAVA_OPTS: "-Xms512m -Xmx512m"
networks:
- lfrnet
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
kibana:
image: kibana:4.6
networks:
- lfrnet
ports:
- "5601:5601"
networks:
lfrnet:
volumes:
db-data:
elasticsearch-data:
我在装有最新版 docker 的 Ubuntu 机器上工作。但我在尝试运行 docker composer 文件时发现了同样的行为https://labs.play-with-docker.com/
我开始
docker-compose up --force-recreate -d
我检查数据库没有运行
docker stats
不知道如何解决这个问题。
答案1
启动docker-compose文件后,您可以按照以下步骤检查错误:
docker ps
获取容器 IDdocker logs --follow --details <CONTAINER ID>
检查错误
我突然想到:
- 这可能是由于您使用的卷导致 MySQL 数据冲突,因此请确保每个版本使用不同的卷