如何用 docker-compose 创建一个不会退出的 container

2015-09-28 20:30:04 +08:00
 retanoj
docker run -d centos bash --> bash 命令执行结束,容器 exit
docker run -it centos bash + Ctrl-P +Ctrl-Q --> 容器会持续运行,但需要手工操作

如何用 docker-compose 创建一个不会退出的容器? 难道只有让容器里运行一个诸如 redis 这样的持续运行的程序来确保容器持续运行吗?有没有更优雅一点的办法?

期待各位的回复
8694 次点击
所在节点    Docker
7 条回复
adrianzhang
2015-09-28 21:21:24 +08:00
不要加 bash 。--restart=always 。你需要多看看文档而不是上来就伸手。
retanoj
2015-09-29 11:14:40 +08:00
@adrianzhang

您确定看懂了我的问题? 好吧,还是归咎于我没把问题描述清楚吧。

加 bash 是为了测试一个”可以执行结束“的命令执行结束后容器会 exit ,用 redis 容器举例,我是想问在用 docker-compose 的情况下,能否达到 docker run -it redis bash -->Ctrl-P + Ctrl-Q 的效果
adrianzhang
2015-09-29 18:16:47 +08:00
@retanoj
官网的例子明明白白的, https://docs.docker.com/compose/, 运行 redis 不要加 bash 。 对于任何想持续执行的 container ,不要加 shell !不要加 shell !不要加 shell !就是用 docker-compose 也是同理!

你非要弄个 shell 然后 C-P C-Q 的,不知道你到底想干什么。

如果只是想在容器运行起来后登录进去看,可以用 docker exec -it redis /bin/bash
retanoj
2015-09-30 09:04:54 +08:00
@adrianzhang

所以嘛,您根本没明白我运行 bash 命令是为了什么,所以就一直没回答出我想要的答案。
我在网上搜了一下,有一个朋友问了和我类似的问题( http://segmentfault.com/q/1010000000424935 ),不是说其中被采纳的答案有多对,重点是这位提问者的需求“就是让 bash 持续跑着,就像个 vm 一样”。

也许是这样使用有违 docker 的使用原则才没有一个合适的方法这么做吧。
adrianzhang
2015-09-30 09:12:42 +08:00
@retanoj 我知道你是为了要个 shell ,第一个回帖里说你要读文档就是这个意思。你想达到的和 docker 本身机制不一样。所以要么用 docker 的方式达到目的,要么就别一根筋非要把扳手当螺丝刀用。
retanoj
2015-10-02 21:31:06 +08:00
@adrianzhang
你真懂事儿
QQ1685425675
2015-10-11 18:56:07 +08:00
docker-compose -d

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/224331

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX