所选堆栈版本不支持SSH,已部署自定义Docker化Java应用求助
解决堆栈版本不支持SSH的方案
方案一:自定义Docker镜像添加SSH服务
- 基于你当前使用的Java基础镜像,修改Dockerfile,安装OpenSSH服务组件:
- 示例Dockerfile片段:
# 以openjdk:17-jdk-slim为例 FROM openjdk:17-jdk-slim # 安装并配置OpenSSH RUN apt-get update && apt-get install -y openssh-server \ && mkdir -p /var/run/sshd \ && echo 'root:自定义密码' | chpasswd \ && sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config # 声明SSH端口 EXPOSE 22 # 同时启动SSH服务和Java应用 CMD ["/bin/sh", "-c", "/usr/sbin/sshd && java -jar 你的应用jar包名称.jar"]
- 示例Dockerfile片段:
- 重新构建镜像并部署,确保堆栈能识别镜像的SSH端口配置
方案二:用容器命令替代SSH登录
- 无需修改镜像,直接通过
docker exec命令进入容器操作:
如果容器内没有bash,可替换为docker exec -it <容器ID或容器名称> /bin/bash/bin/sh
方案三:切换支持SSH的堆栈版本
- 查找同类型且明确支持SSH的堆栈版本,验证应用兼容性后,重新部署你的Java应用
内容的提问来源于stack exchange,提问作者Himanshu Mandaliya
相关产品推荐
相关产品推荐

