1
hxsf 2018-02-02 23:33:59 +08:00 via iPhone 1
试试把登录的 shell 改成 docker run -it --rm alpine sh ?
|
2
hxsf 2018-02-02 23:39:10 +08:00 via iPhone 1
上面的方案我没试过,不过可行性有的
不过我做过 用 webssh + docker 的方式 可以达到你的目的 |
3
msg7086 2018-02-02 23:42:57 +08:00 1
没玩过这种,但是可以提供一些思路。
authorized_keys 里可以指定承接连接的命令,看看能不能直接直通到 tty ? sshd 进程本来就不大,而且都是相同二进制文件,内存数据可以共享。而且一个 sshd 才吃不到 10M 内存,开 100 个也没 1G,我觉得为了省 1G 内存去折腾那么多东西太浪费时间了。 |
5
am241 2018-02-02 23:52:12 +08:00
100 个 sshd 进程占用的内存应该比单个 sshd 进程占用内存的 100 倍要小吧
|
6
billwsy 2018-02-03 00:17:02 +08:00 via iPhone 1
|
7
billwsy 2018-02-03 00:23:01 +08:00 via iPhone 1
其实我自己还写过一个脚本,也可以作为 login shell。但是应用场景不一样(假设用户是善良的,用户有 docker 组权限)。第一次登录的时候自动创建容器,自动 mount 主目录,以用户的 uid 运行,但是允许不需要密码 sudo,后面登录的时候重用该用户之前创建过的容器,最后脚本也就百来行。
|
8
julyclyde 2018-02-03 09:19:36 +08:00
linode console 那种嘛,呵呵
自己做个 shell 或者 authorized_keys 里指定 command,然后直接接管登录后的用户 |
9
rrfeng 2018-02-03 09:50:48 +08:00 1
最简单的办法:
bashrc 里写 docker run -it .... 只要登录就切入进去了。除非起不来~也可以写上起不来就退出。没啥毛病。 |
10
xuanyuanaosheng 2018-02-03 09:59:05 +08:00 via Android
希望楼主找到好的办法 @我一下,感觉会有用
|
11
cy97cool OP @xuanyuanaosheng 6L 给的看起来不错
|
12
kaneg 2018-02-03 12:42:45 +08:00 via iPhone 1
你可以看看这个: https://github.com/kaneg/httpshell
不是完全与你的需求相符,但只需要一个端口就可以了,你可以参考下 |
13
artandlol 2018-02-03 13:01:59 +08:00 via iPhone 1
这里之前的 coding.net 的开发者开源了一个 websocket 版的,支持 docker,安装起来也快。叫 ttyd,映射到浏览器的。支持开放特定程序。
另你是没有见过成千上万个同一进程的吗 |
14
xuyl 2018-02-03 16:40:06 +08:00
貌似实验楼就是这么干的
|
15
hu6360567 2018-02-04 14:01:35 +08:00 via Android
OpenVZ 啊
|
16
xuanyuanaosheng 2018-02-04 16:24:02 +08:00 via Android
@cy97cool 好的 谢谢
|