daocloud 容器的控制台如何实现的


我使用daocloud的容器,发现在容器控制台 既不是attach进去容器的,也不是使用exec api进去容器,不管什么类型的容器,进入控制台 都会开启一个全新的bash ,而且和容器的初始默认执行的命令没有关系,不知道这是如何实现的呢?求指教?

103958069@chatroom_1440922071654_44.jpg


103958069@chatroom_1440922105798_9.jpg
已邀请:

徐新坤 - 京东商城-TIG-JDOS团队

赞同来自:


感觉应该是docker exec 来实现的。

<pre># ps -fe
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 08:18 ? 00:00:00 /bin/bash
root 14 0 0 08:18 ? 00:00:00 bash
root 30 0 0 08:19 ? 00:00:00 bash
root 42 0 0 08:20 ? 00:00:00 bash
root 69 0 0 08:21 ? 00:00:00 bash
root 84 0 0 08:23 ? 00:00:00 bash
root 97 84 0 08:23 ? 00:00:00 ps -fe</pre>

从控制台里输入这个,可以看到ps -ef是由84进程出来的。而84进程是由0号进程直接出来的。docker exec -it df68 bash就是这个效果。所以猜测应该是exec做的。

徐磊 - BlackOps@Qunar

赞同来自:


猜测用exec实现的,我们也实现了一个,但不是基于Web的。看过Docker代码就可以搞定,把api/client/hijack.go看下你就知道了。

要回复问题请先登录注册