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 ![]() @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 ![]() 就我一个看成 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 |