Docker CE教程中docker stack deploy无报错但未创建容器求助
排查Docker Stack部署无报错但服务未启动的问题
我之前也碰到过这种“命令返回成功但实际服务没跑起来”的糟心情况,结合你的环境(Ubuntu 17.10 + Docker CE 18.03.1-ce),给你几个实用的排查方向:
1. 先确认服务状态并查看日志
首先执行命令查看服务的实际运行状态:
docker service ls
重点看compose-example_web这条服务的REPLICAS列,如果显示0/1,说明系统期望启动1个实例但实际没有运行中的容器。
接着查看服务的启动日志,这是定位问题的关键:
docker service logs compose-example_web
很多时候命令行没抛出错误,但日志里会暴露真相——比如镜像拉取失败(镜像名拼写错误、私有仓库未授权)、容器启动命令有误、端口被占用,或是环境变量配置缺失等。
2. 检查Swarm模式是否已初始化
Docker Stack是Swarm集群模式专属的命令,如果你的环境还没初始化Swarm,哪怕docker stack deploy不报错,服务也不会被正常调度启动。执行以下命令确认并初始化:
# 查看Swarm状态 docker info | grep Swarm # 如果显示Swarm: inactive,初始化单节点Swarm docker swarm init
完成初始化后,重新执行你的部署命令试试。
3. 用docker-compose单独验证配置文件
先把docker-compose.yml脱离Swarm模式测试,执行:
docker-compose up
这个命令会在前台启动容器并实时输出日志,能更快定位配置文件里的问题——比如挂载的volumes路径不存在、网络模式冲突、容器依赖的服务未就绪等。
4. 查看Docker守护进程的系统日志
如果上面的步骤都没找到问题,就去排查Docker daemon本身的运行日志,Ubuntu上可以通过以下命令查看:
journalctl -u docker.service
这里可能会看到底层报错,比如存储驱动异常、权限不足(Docker无法访问指定目录)、系统资源不足等问题。
内容的提问来源于stack exchange,提问作者JesseTG
相关产品推荐
相关产品推荐

