Docker中配置centos容器支持ssh

时间:2022-05-06
本文章向大家介绍Docker中配置centos容器支持ssh,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

在Docker起步中,已经下载了ubuntu系统镜像,启动容器后成功执行了一个简单的系统命令

此时的容器是封闭的,下面我们就建立起和容器的沟通桥梁 - 配置SSH服务

这里使用centos镜像进行配置

步骤

(1)下载centos基础镜像

(2)编写集成配置文件,在基础镜像之上支持ssh

(3)运行配置文件,创建支持ssh的新镜像

(4)运行容器,同时开启ssh服务

(5)测试,用ssh命令连接容器

操作

(1)下载centos基础镜像

执行下载镜像命令

# docker pull centos

(2)编写配置文件

新建一个测试目录,在其下新建配置文件

# vi Dockerfile

内容:

FROM        centos
MAINTAINER  dys "dys@abc.com"
RUN         yum install -y openssh openssh-server openssh-clients
RUN         mkdir -p /var/run/sshd
RUN         ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
RUN         ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN         /bin/echo 'root:aaaaaa' |chpasswd
RUN         useradd dys
RUN         /bin/echo 'dys:aaaaaa' |chpasswd
RUN         /bin/sed -i 's/.*session.*required.*pam_loginuid.so.*/session optional pam_loginuid.so/g' /etc/pam.d/sshd
RUN         /bin/echo -e "LANG="en_US.UTF-8"" > /etc/default/local
EXPOSE      22
CMD         /usr/sbin/sshd -D

(3)运行配置文件,创建镜像

在Dockerfile文件所在目录下执行:

docker build -rm -t dys/centos:ssh .

当执行完后,使用 docker images 命令就能看到刚刚创建的镜像 dys/centos

(4)运行容器

执行命令启动容器

docker run -d -p 22 dys/centos:ssh

使用 docker ps 命令查看是否启动成功

如果看到了刚创建的镜像名称,说明此容器已成功运行

0.0.0.0:1035->22/tcp 说明22端口对应的是1035端口,我们就可以使用ssh客户端连接了

(5)连接测试

使用ssh命令连接容器

上面的配置文件中添加了用户:dys,并设置了密码:aaaaaa

ssh dys@127.0.0.1 -p 1035

输入密码 aaaaaa

进入容器的命令行

这个过程中最重要的是 Dockerfile 配置文件的编写,后续会详细介绍此文件