docker容器添加ssh服务

本篇文章主要介绍如何为一个容器添加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用户名密码,访问成功

猜你喜欢

转载自blog.csdn.net/m0_64496909/article/details/129896779
今日推荐