
刚学习和用上 docker 几天,用 hub.docker 的公共镜像,创建了自己的容器(testrq),配好了实验环境,正确弄好 sshd 服务,操作机也能 ssh 上来了,
请教的问题是,我每次退出了这个 test 容器( exit code 139),再开启这个容器的时候,我是以:
docker start testrq 开启容器,这样开启 docker 容器,里面的 ssh 服务不能自动启动,
我在网上看到的例子,是改 bashrc 的判断启动,但未能成功,是不是不适合我这周启动方式?
请教正确的启动内部 ssh 服务方法? 谢谢!
1 piku 2023-02-27 17:58:47 +08:00 via Android 不理解你在说什么。 请检查容器启动时启动的究竟是什么命令,EXEC=? 还有一种可能是你的宿主机占用了 22 端口,容器也配的 22 端口 |
2 riggzh 2023-02-27 18:01:25 +08:00 没这个需求-。-,你是用什么作为基础启动的,那就去用什么系统的启动脚本。至于端口能不能映射出来,是你的容器设置 |
3 qazwsxkevin OP 我是用 docker run -d --name testrq -p 65001:22 testos:v1 创建容器的, 在容器里启动 ssh 服务的时候,外机是能 ssh 上来的 但容器退出后,再 docker start 容器,ssh 服务不会自动起来 |
4 benzalus 2023-02-27 18:19:16 +08:00 设置容器启动命令为开启 sshd 。这样得到容器后就有 sshd 服务 疑问:为啥要用 sshd 呢,不能通过 docker exec 达成类似效果吗 |
5 SbloodyS 2023-02-27 18:21:34 +08:00 |
6 lovelylain 2023-02-27 18:29:52 +08:00 via Android 看下 entrypoint 是什么,一层层排查,docker 本身应该没什么区别,可能容器内残留文件影响了 |
7 geminikingfall 2023-02-27 18:38:00 +08:00 需要写个 dockerfile |
8 huangmingyou 2023-02-28 08:45:42 +08:00 用容器就要转换思路,不能当成一个随时要登陆的系统来用。 |
9 julyclyde 2023-02-28 08:57:50 +08:00 1 容器不是虚拟机,而是“用后即弃”的应用程序 2 不要在容器里运行多个服务 3 搞明白 bashrc 是在什么场景被调用的 |
10 bai4246464 2023-02-28 09:10:45 +08:00 看看镜像是不是自带 sshd 的,带的话排查端口 不带的话自己用 dockerfile 打个镜像 |
11 piku 2023-03-01 15:13:19 +08:00 看起来是 entrypoint 的问题 |