docker exec -it 容器名字 bash 如果这个容器因为错误 Exited 了。。就会提示这个容器没启动。这种情况下我要如何进入到这个容器内,修改下错误的部分,继续 restart 这个容器呢?
1
Accldent 2016-06-07 17:43:41 +08:00
run 一个新的
|
2
csdreamdong OP @Accldent 0 0..就是不想重新 run 一样。。还有别的办法嘛。。大神。
|
3
csdreamdong OP @Accldent 每次改掉一个 bug 。都要重新打包一个新的镜像,,在 run 一个。这样子重复比较麻烦。。有木有在这个报错的容器里,直接改改调试,看还有没有别的问题。。最后再重做一个
|
4
dreasky 2016-06-07 17:48:18 +08:00
先 start 啊
|
5
csdreamdong OP @dreasky 就是 start 之后,因为容器里的运行的代码报错了,然后容器 Exited (1) 3 seconds ago 了。
|
6
csdreamdong OP @csdreamdong 然后 docker logs -f container_id 能看到哪里错了,,想要修改正确。。就是不知再道怎么进去。。。
docker exec -it ***** bash 如果是运行中的容器,,是这样子进的,,现在已经退出的容器。。怎么玩? |
7
Accldent 2016-06-07 17:51:34 +08:00 1
@csdreamdong 没有其他办法,四楼说的 start 也没有用,因为 start 之后遇到错误还是会 exit ,你的需求要满足很简单,直接用 exec /bin/bash 命令启动一个新的容器,然后你要操作什么在 bash 里面操作,最后完成之后写进 dockerfile
|
8
Accldent 2016-06-07 17:52:20 +08:00
上面写错了 不是 exec 应该是 run
|
9
coffin5257 2016-06-07 17:52:22 +08:00
楼主你思路有问题。首先要看你的容器是因为什么 Exited 了,如果是 start 的时候就秒退了,那么说明你的 Dockerfile 或者应用有问题,这个 bug 你只能通过重新 build 重新 run 去调试。如果是运行中突然出错,那一般是你业务代码出错吧, docker logs 看看日志,业务相关出错了在本地开发环境调试啊,不用重新跑 docker 容器。
|
10
csdreamdong OP @Accldent 哦哦哦。好吧。谢谢啦。~
|
11
csdreamdong OP |
12
dreasky 2016-06-07 17:55:26 +08:00
start 和 restart 都是可以重启容器的 至于为什么 Exited 才是问题所在
docker run -it xxx /bin/bash 应该不会出什么问题吧 除非镜像本身有问题 |
13
coffin5257 2016-06-07 17:57:37 +08:00
@csdreamdong 难道不应该是在本地调试没问题后再通过 docker 去打包吗?本地调试更方便啊,而且能避免出现测试环境改了代码忘了同步到本地的情况
|
14
csdreamdong OP @coffin5257 最近刚开始用 docker ,然后是 python 的应用。。一些依赖包最开始都没整理过。
然后放进 docker 后。一启动,就提示却包。。然后改,提交,重新打包。。再 run 。。。又提示缺包 来回反复了几次。。觉得有木有。。一次性现在容器里,找到一个临时改一个。。最后全了以后。。重新打一次包。。 啊哈哈。。就是之前开发时挖的坑。。 |
15
csdreamdong OP |
16
miyuki 2016-06-07 19:28:09 +08:00 via Android 8
就我一个看成 Excited?
|
19
gamexg 2016-06-07 20:17:10 +08:00
docker 学习笔记:修改无法启动的容器中的内容
http://www.cnblogs.com/51kata/p/5276407.html |
20
Balthild 2016-06-07 20:25:43 +08:00 via Android
如何进入一个 Excited 的容器?
|
21
crysislinux 2016-06-07 21:16:48 +08:00
找本书看看。有这方面的资料的。比如 nodejs 的话,就用- v 参数挂载代码,然后 nodemon 监控,自动重启, python 也有类似的东西
|
22
bearice 2016-06-07 21:24:15 +08:00
+1s
另外可以使用 daemontools/runit 作为入口点,就可以随时 exec 进去了 |
23
majinjing3 2016-06-07 21:50:19 +08:00 via Android
哎,先 commit 成新的 image ,然后再 run 不就好了。。。
|
24
mahone3297 2016-06-07 21:54:59 +08:00
@miyuki 你有用过 docker 吗?没看到过 exited ?
|
26
UnisandK 2016-06-07 22:08:29 +08:00
你们搞的这个容器啊。。 Excited !
|
27
miyuki 2016-06-07 22:21:28 +08:00 via Android
@mahone3297 excited 是个梗
|
28
little_cup 2016-06-07 22:35:14 +08:00
@miyuki 我一个好端端的容器,怎么就 excited 了呢?当场念了两句诗……
|
29
csdreamdong OP @miyuki 成功把楼歪了。。。 exicted !!
|
30
iamwb 2016-06-09 13:22:37 +08:00 via Android
我也实在不是谦虚, docker 这个东西啊,不但要考虑到自我奋斗,也要考虑到历史的行程
|
31
julyclyde 2016-06-09 20:14:06 +08:00
md
我也看成 excited 了 我自省 |
32
deljuven 2018-08-20 10:04:50 +08:00
excited! +1s
|