84人参与 • 2025-02-14 • 云虚拟主机
在 docker 容器中运行 ssh 服务需要一些调整,因为 docker 容器通常使用 init
系统而不是完整的 systemd
。以下是配置 ssh 服务在 docker ubuntu 容器中运行的步骤:
如果还未安装 openssh,请先安装:
apt update apt install openssh-server -y
编辑 ssh 配置文件,确保服务可以正常启动。
nano /etc/ssh/sshd_config
禁用 pam(docker 容器中推荐):
usepam no
允许密码登录(如需通过密码登录):
passwordauthentication yes
保存并退出(nano 中按 ctrl+o
保存,ctrl+x
退出)。
ssh 服务需要 /run/sshd
目录。
mkdir -p /run/sshd
由于 docker 容器通常没有 systemd
,需要直接运行 sshd
命令来启动服务。
/usr/sbin/sshd -d
-d
选项让 sshd
以前台模式运行,适合 docker 容器。
如果想让 ssh 在容器中持续运行,可以在启动容器时使用 docker run
命令运行一个附带 sshd
的入口点脚本。
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
。
使用以下命令从主机连接到容器:
ssh root@localhost -p 2222
输入之前设置的密码(如 password
),即可登录到容器中。
supervisord
或其他工具管理多个进程。到此这篇关于docker容器中启用ssh服务的方法步骤的文章就介绍到这了,更多相关docker启用ssh服务内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论