docker 如何进入一个已经 Exited 的容器

2016-06-07 17:38:18 +08:00
 csdreamdong

docker exec -it 容器名字 bash 如果这个容器因为错误 Exited 了。。就会提示这个容器没启动。这种情况下我要如何进入到这个容器内,修改下错误的部分,继续 restart 这个容器呢?

26871 次点击
所在节点    Docker
32 条回复
Accldent
2016-06-07 17:43:41 +08:00
run 一个新的
csdreamdong
2016-06-07 17:46:01 +08:00
@Accldent 0 0..就是不想重新 run 一样。。还有别的办法嘛。。大神。
csdreamdong
2016-06-07 17:47:21 +08:00
@Accldent 每次改掉一个 bug 。都要重新打包一个新的镜像,,在 run 一个。这样子重复比较麻烦。。有木有在这个报错的容器里,直接改改调试,看还有没有别的问题。。最后再重做一个
dreasky
2016-06-07 17:48:18 +08:00
先 start 啊
csdreamdong
2016-06-07 17:49:42 +08:00
@dreasky 就是 start 之后,因为容器里的运行的代码报错了,然后容器 Exited (1) 3 seconds ago 了。
csdreamdong
2016-06-07 17:50:55 +08:00
@csdreamdong 然后 docker logs -f container_id 能看到哪里错了,,想要修改正确。。就是不知再道怎么进去。。。
docker exec -it ***** bash
如果是运行中的容器,,是这样子进的,,现在已经退出的容器。。怎么玩?
Accldent
2016-06-07 17:51:34 +08:00
@csdreamdong 没有其他办法,四楼说的 start 也没有用,因为 start 之后遇到错误还是会 exit ,你的需求要满足很简单,直接用 exec /bin/bash 命令启动一个新的容器,然后你要操作什么在 bash 里面操作,最后完成之后写进 dockerfile
Accldent
2016-06-07 17:52:20 +08:00
上面写错了 不是 exec 应该是 run
coffin5257
2016-06-07 17:52:22 +08:00
楼主你思路有问题。首先要看你的容器是因为什么 Exited 了,如果是 start 的时候就秒退了,那么说明你的 Dockerfile 或者应用有问题,这个 bug 你只能通过重新 build 重新 run 去调试。如果是运行中突然出错,那一般是你业务代码出错吧, docker logs 看看日志,业务相关出错了在本地开发环境调试啊,不用重新跑 docker 容器。
csdreamdong
2016-06-07 17:52:56 +08:00
@Accldent 哦哦哦。好吧。谢谢啦。~
csdreamdong
2016-06-07 17:55:13 +08:00
@coffin5257 啊哈哈。。是啊,道理是这样子的。。
然后开发环境是开发机本地跑的,没有用 docker 。,,偷懒。。
再然后想要改完直接看看效果嘛。。没问题。。再改代码提交。。
dreasky
2016-06-07 17:55:26 +08:00
start 和 restart 都是可以重启容器的 至于为什么 Exited 才是问题所在
docker run -it xxx /bin/bash 应该不会出什么问题吧 除非镜像本身有问题
coffin5257
2016-06-07 17:57:37 +08:00
@csdreamdong 难道不应该是在本地调试没问题后再通过 docker 去打包吗?本地调试更方便啊,而且能避免出现测试环境改了代码忘了同步到本地的情况
csdreamdong
2016-06-07 17:58:45 +08:00
@coffin5257 最近刚开始用 docker ,然后是 python 的应用。。一些依赖包最开始都没整理过。
然后放进 docker 后。一启动,就提示却包。。然后改,提交,重新打包。。再 run 。。。又提示缺包
来回反复了几次。。觉得有木有。。一次性现在容器里,找到一个临时改一个。。最后全了以后。。重新打一次包。。
啊哈哈。。就是之前开发时挖的坑。。
csdreamdong
2016-06-07 18:00:16 +08:00
@dreasky 嗯嗯嗯。
我们是 run -d 的,然后 run 完,就退出了。。确实是业务代码问题导致 exit 的。。
就像偷偷懒。。直接在容器里看能不能改完没事后,最后再提交代码。- -
miyuki
2016-06-07 19:28:09 +08:00
就我一个看成 Excited?
manhere
2016-06-07 19:29:47 +08:00
@miyuki +1s
zts1993
2016-06-07 19:42:10 +08:00
@miyuki 不止你一个...
gamexg
2016-06-07 20:17:10 +08:00
docker 学习笔记:修改无法启动的容器中的内容
http://www.cnblogs.com/51kata/p/5276407.html
Balthild
2016-06-07 20:25:43 +08:00
如何进入一个 Excited 的容器?

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

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

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

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

© 2021 V2EX