【发布时间】:2019-12-03 16:00:58
【问题描述】:
我有几个容器,每个容器都在一个 docker-compose-<service>.yaml 文件中进行了描述,我从它们开始
docker-compose -f docker-compose-<service>.yaml up -d
然后我通过docker ps 看到容器正在运行。
我希望我可以通过
停止该容器docker-compose -f docker-compose-<service>.yaml down
但容器并未停止。当我将上面的comane与stop而不是down一起使用时也不是。
执行docker kill <service> 会停止容器。
我的问题:由于我所有以docker-compose 开头的服务实际上是每个docker-compose-<service>.yaml 文件的一个容器,我可以使用裸docker 命令来停止它吗?
或者更笼统地说:docker-compose 只是底层docker 命令的助手,这意味着使用docker 总是安全的(从“使用不同命令的一致性”的角度来看)?
【问题讨论】:
-
您绝对可以使用
docker stop <container>停止撰写容器。但是为什么每张图像都有一个撰写文件?为什么在这种情况下使用 compose? -
@JustinLessard:几个原因:1)因为以 docker-compose 格式编写配置比在几行上拖动
docker run ...更容易,2)它使启动/停止它们更容易你有 50 或 60 个容器等。替代方案是 kubernetes,但这是我家庭设置的方式 -
在这种情况下,我推荐github.com/rancher/k3s,在本地、开发和生产环境中测试和批准。但它默认使用'containerd'。可以使用 docker 代替。
-
这很奇怪......你能发布你的
docker-compose-<service>.yml文件吗?它绝对应该与docker-compose stop命令一起使用。
标签: docker docker-compose