在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 配置文件的编写,后续会详细介绍此文件