比较纳闷, 大家用 docker 没什么进 container 的需求?分享俩篇文章

2014-09-13 20:34:31 +08:00
 hick
常见的 docker 使用基础文章甚至官方的 user guide 也看了一遍, 很少有文章提及怎么进入一个 container , 我之前是理解错误, 以为 run 的时候 -t -i /bin/bash 就可以了, 才发现这样跑的是一个独立的 shell 的container ,如果不独立在 container 里启动 sshd , 就 ssh 不进去。 严格来说还是有很多方法进去, 大家没相关需求么?

更喜欢这篇:

How to enter a Docker container https://blog.codecentric.de/en/2014/07/enter-docker-container/

这篇是官方的 blog , 前面啰嗦了一堆,
WHY YOU DON'T NEED TO RUN SSHD IN YOUR DOCKER CONTAINERS https://blog.docker.com/2014/06/why-you-dont-need-to-run-sshd-in-docker/
5189 次点击
所在节点    Docker
6 条回复
janxin
2014-09-13 21:04:54 +08:00
如果有这种需求一般是起个bash,用bash去run其他程序....
chengmin
2014-09-13 21:13:18 +08:00
可以试试搜狐的Paas搜狐云景了,底层基于container的,可以SSH到Container上,这个还比较有吸引力:)正在他们的技术群里要求开更多权限,呵呵
julyclyde
2014-09-13 21:18:40 +08:00
如果你有这个需求,一般是你错了
mgcnrx11
2014-09-13 21:46:14 +08:00
官方的博客也说了,只是少数情况需要enter到container里面,一般就是调试时需要吧
ETiV
2014-09-13 23:34:23 +08:00
你需要换一个 image.

https://registry.hub.docker.com/u/phusion/baseimage/

自带了 sshd, 和服务启动器(runit)
hick
2014-09-14 10:26:53 +08:00
@mgcnrx11 官方的 blog 的提到用 ssh 就有密码管理升级和安全问题等等,这完全是个伪命题, 典型的技术流思路: 因为实现起来麻烦,所以我不准备提供这个功能。实际上 mysql 和 vagrant 的思路就是值得借鉴的现成例子;完全也可以封装 nsenter 实现类似的功能。 大家认定的不是ssh , 而是进入 container , 实际上最新 docker github 源码似乎已经加入类似功能支持, 通过 exec 子命令大概就能进去了, 还不在发布版本里。

也许官方设计原意是想建议大家怎么怎么用,有动态数据通通扔到 volumn 里, 但是开源之所以能得以发扬光大,并不是因为其多么优秀的代码软件质量,很重要的一点是因为其开放, 你可以当黑盒去用, 但是有需要---各种可能,不一定就是官方说的几种----你可以当白盒来使用。 想看看正在跑的 container (跟先进 bash 再启动 app 是类似但是是俩码事)里头是啥样的才放心,然后随便捣鼓捣鼓, 这不过分。

实际上除了类似 VPS 这种很常见的用法, 很多情况可能不想使用者进入 host , 就想限制其在 container 内进行操作, 不是一个 volumn 就是万能的。 思维放开点, 这就相当于纯物理机时代,一般开发拿到的都是非 root 用户, 如果能把用户隔离在 container 里显然更好。

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

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

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

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

© 2021 V2EX