已经做好的 docker 容器,如何在 docker start 容器时,里面的 ssh 服务也跟随启动?

2023 年 2 月 27 日
 qazwsxkevin

刚学习和用上 docker 几天,用 hub.docker 的公共镜像,创建了自己的容器(testrq),配好了实验环境,正确弄好 sshd 服务,操作机也能 ssh 上来了,
请教的问题是,我每次退出了这个 test 容器( exit code 139),再开启这个容器的时候,我是以:

docker start testrq

开启容器,这样开启 docker 容器,里面的 ssh 服务不能自动启动,
我在网上看到的例子,是改 bashrc 的判断启动,但未能成功,是不是不适合我这周启动方式?
请教正确的启动内部 ssh 服务方法? 谢谢!

2713 次点击
所在节点    Linux
11 条回复
piku
2023 年 2 月 27 日
不理解你在说什么。
请检查容器启动时启动的究竟是什么命令,EXEC=?
还有一种可能是你的宿主机占用了 22 端口,容器也配的 22 端口
riggzh
2023 年 2 月 27 日
没这个需求-。-,你是用什么作为基础启动的,那就去用什么系统的启动脚本。至于端口能不能映射出来,是你的容器设置
qazwsxkevin
2023 年 2 月 27 日
我是用
docker run -d --name testrq -p 65001:22 testos:v1
创建容器的,
在容器里启动 ssh 服务的时候,外机是能 ssh 上来的
但容器退出后,再 docker start 容器,ssh 服务不会自动起来
benzalus
2023 年 2 月 27 日
设置容器启动命令为开启 sshd 。这样得到容器后就有 sshd 服务
疑问:为啥要用 sshd 呢,不能通过 docker exec 达成类似效果吗
SbloodyS
2023 年 2 月 27 日
可以通过--init 的方式将启动脚本和主进程绑定起来

https://docs.docker.com/engine/reference/run/
lovelylain
2023 年 2 月 27 日
看下 entrypoint 是什么,一层层排查,docker 本身应该没什么区别,可能容器内残留文件影响了
GeminiPro
2023 年 2 月 27 日
需要写个 dockerfile
huangmingyou
2023 年 2 月 28 日
用容器就要转换思路,不能当成一个随时要登陆的系统来用。
julyclyde
2023 年 2 月 28 日
1 容器不是虚拟机,而是“用后即弃”的应用程序
2 不要在容器里运行多个服务
3 搞明白 bashrc 是在什么场景被调用的
bai4246464
2023 年 2 月 28 日
看看镜像是不是自带 sshd 的,带的话排查端口
不带的话自己用 dockerfile 打个镜像
piku
2023 年 3 月 1 日
看起来是 entrypoint 的问题

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

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

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

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

© 2021 V2EX