当前位置: 代码网 > 服务器>服务器>云虚拟主机 > Docker容器中启用SSH服务的方法步骤

Docker容器中启用SSH服务的方法步骤

2025年02月14日 云虚拟主机 我要评论
在 docker 容器中运行 ssh 服务需要一些调整,因为 docker 容器通常使用init系统而不是完整的systemd。以下是配置 ssh 服务在 docker ubuntu 容器中运行的步骤

在 docker 容器中运行 ssh 服务需要一些调整,因为 docker 容器通常使用 init 系统而不是完整的 systemd。以下是配置 ssh 服务在 docker ubuntu 容器中运行的步骤:

1. 安装 ssh 服务

如果还未安装 openssh,请先安装:

apt update
apt install openssh-server -y

2. 配置 ssh 服务

编辑 ssh 配置文件,确保服务可以正常启动。

编辑配置文件:

nano /etc/ssh/sshd_config

检查以下配置项并修改(如有需要):

禁用 pam(docker 容器中推荐):

usepam no

允许密码登录(如需通过密码登录):

passwordauthentication yes

保存并退出(nano 中按 ctrl+o 保存,ctrl+x 退出)。

3. 创建 ssh 运行目录

ssh 服务需要 /run/sshd 目录。

mkdir -p /run/sshd

4. 启动 ssh 服务

由于 docker 容器通常没有 systemd,需要直接运行 sshd 命令来启动服务。

/usr/sbin/sshd -d

-d 选项让 sshd 以前台模式运行,适合 docker 容器。

5. 后台运行 ssh 服务(可选)

如果想让 ssh 在容器中持续运行,可以在启动容器时使用 docker run 命令运行一个附带 sshd 的入口点脚本。

示例 dockerfile

from ubuntu:latest

# 安装 openssh 服务
run apt update && apt install -y openssh-server && mkdir -p /run/sshd

# 配置 ssh
run echo 'root:password' | chpasswd
run sed -i 's/#permitrootlogin prohibit-password/permitrootlogin yes/' /etc/ssh/sshd_config
run sed -i 's/#passwordauthentication yes/passwordauthentication yes/' /etc/ssh/sshd_config

# 启动 ssh 服务
cmd ["/usr/sbin/sshd", "-d"]

构建和运行容器:

docker build -t ubuntu-ssh .
docker run -d -p 2222:22 ubuntu-ssh

这将启动一个允许通过 ssh 连接的 docker 容器,并将主机的端口 2222 映射到容器的端口 22

6. 测试 ssh 连接

使用以下命令从主机连接到容器:

ssh root@localhost -p 2222

输入之前设置的密码(如 password),即可登录到容器中。

7. 注意事项

  • 安全性: 不建议在生产环境中使用密码登录,推荐使用密钥认证。
  • 容器保活: 如果需要 ssh 和其他服务同时运行,可使用 supervisord 或其他工具管理多个进程。

到此这篇关于docker容器中启用ssh服务的方法步骤的文章就介绍到这了,更多相关docker启用ssh服务内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com