docker容器添加ssh服务

本文介绍了如何在两台服务器上设置SSH服务,以便从一台服务器直接通过SSH连接到运行在另一台服务器上的Docker容器。首先,从DockerHub下载Ubuntu镜像,创建并运行容器,然后在容器内安装SSH服务,编辑配置文件允许root用户访问,设置root用户的密码。接着,根据运行的容器创建新的镜像,并通过端口映射(如11002:22)使外部可以访问容器的SSH服务。最后,从外部服务器可以直接SSH连接到指定端口,实现对容器的远程访问。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇文章主要介绍如何为一个容器添加ssh服务,使得可以从另一台服务器直接ssh到一个容器内部,达到直接访问容器内部环境的目的,避免需从宿主机docker exec或attach进入容器

实验环境:两台服务器地址 192.168.91.131    192.168.91.133(容器所在宿主机)

实验结果:从192.168.91.131可以通过ssh 192.168.91.133 -p xxxx直接访问容器内部

实验过程:

1、获取ubuntu系统镜像,从本地镜像库下载,若没有可以从Docker Hub中下载

docker images查看服务器中存在镜像,若没有需从远端仓库中docker pull下载

2、根据该镜像创建容器

docker run -it -d usshdtest:sshdtest //未指定容器名称随机生成

docker ps查看容器已运行

3、进入容器安装sshd服务

         3.1 进入容器

docker exec -it a8c65e013d27 bash

         3.2 安装ssh服务

apt-get install openssh-server

         3.3 ssh服务安装完成无问题后,编辑/etc/ssh/sshd_config配置文件,添加允许root用户访问,增加配置如下

       3.4 配置添加完成后启动sshd服务

/usr/sbin/sshd       //默认安装路径,启动sshd服务

查看sshd服务已启动 

        3.5 在容器内部环境,为root用户添加一个密码 ,添加完成后Ctrl p+q退出容器

passwd root

4、 根据运行的容器重新创建镜像

docker commit a8c65e013d27 ubuntu:sshdtest

创建完成后可以docker images核对一下,镜像是否创建成功

5、根据新创建的镜像运行容器

docker run -it -p 11002:22 -d ubuntu:sshdtest    //-p参数配置端口映射,将容器内22端口(sshd服务占用端口,可在容器内部netstat命令查看)映射到宿主机11002端口

查看新容器已运行,且11002与22端口映射

 6、docker exec进入容器运行sshd服务,此处也可做成脚本在运行容器的时候执行脚本启动sshd服务,确保sshd服务运行

 7、从另一台服务器192.168.91.131直接通过映射的11002端口ssh 192.168.91.133 -p 11002访问容器内部,输入3.5步骤中的root用户名密码,访问成功

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值