不要在container里使用sshd的n个理由
原文链接: why you don’t need to run sshd in your docker containers
今天在docker官方博客上看到一篇很好的文章,很有收获,打算翻译过来。 这篇文章讲的是不在container中使用sshd的n个理由–其实我之前很喜欢在里面开个sshd方便去check状态log之类的。
在使用docker的时候,总是有人会问“怎么进入到container里面去呢?”,然 后一些人就会说“开个sshd不就行了”。当你看完这篇文章之后你会发现sshd是不 必要的,除非你需要一个ssh server的container。
一开始大家都会禁不住去用ssh server,这看起来是最简单的方法–几乎每个 人都用过ssh的。对于我们很多人来说,ssh是一个基本技能,对各种公私钥, 无密码登陆,端口转发等等都很熟悉。有了这些基础,自然而然就会想通过sshd 进入container内部了。
现在假设你要redis server或者java webservice的docker image。考虑下下面几个问题:
- 你需要sshd来干嘛?多数情况下你可能只是需要做下备份,查看下日志,或者重启下进程、调整下配置文件,甚至用gdb、strace来调试等等。那么后面我来告诉你怎么不使用sshd来完成这些任务。