码迷,mamicode.com
首页 > 其他好文 > 详细

Docker-为镜像添加SSH服务

时间:2018-06-23 00:00:15      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:sbin   dsa   erp   后台   perm   created   ping   配置文件   hang   

进入容器的办法有很多,包括exec、attach等命令,但是这些命令都无法解决远程管理容器的问题,因此,需要SSH的支持

基于commit命令创建

docker提供了docker commit命令,支持用户提交自己对指定容器的修改,并生成新的镜像。命令格式为docker commit CONTAINER [REPOSITORY[:TAG]]

Centos6开启SSH服务

启动容器

FengZhen$ docker run -it --name centos6 centos:6 /bin/bash

 

-t选项让docker分配一个伪终端并绑定到容器的标准输入上,-i则让容器的标准输入保持打开
当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括: ?

(1)检查本地是否存在指定的镜像,不存在就从公有仓库下载 ?

(2)利用镜像创建并启动一个容器 ?

(3)分配一个文件系统,并在只读的镜像层外面挂载一层可读写层 ?

(4)从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去 ?

(5)从地址池配置一个 ip 地址给容器 ?

(6)执行用户指定的应用程序 ?

(7)执行完毕后容器被终止

 

查看centos版本信息

[root@ee8961b00872 /]# cat /etc/redhat-release 
CentOS release 6.9 (Final)

 

修改root密码

使用passwd来修改密码(如果没有这个命令,使用yum install passwd安装)

[root@ee8961b00872 /]# passwd
Changing password for user root.
New password: 
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password: 
passwd: all authentication tokens updated successfully.

安装Openssh

使用下面的命令安装ssh server / ssh client

[root@ac1a6c198331 /]# yum -y install openssh-server
[root@ac1a6c198331 /]# yum -y install openssh-clients

 

修改SSH配置文件以下选项,去掉#注释,将四个选项启动

[root@ac1a6c198331 /]# vi /etc/ssh/sshd_config
RSAAuthentication yes #启用 RSA 认证
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径(和上面生成的文件同)
PermitRootLogin yes #root能使用ssh登录

重启SSH服务,并设置开机启动

[root@ee8961b00872 /]# service sshd restart
Stopping sshd: [FAILED]
Generating SSH2 RSA host key: [ OK ]
Generating SSH1 RSA host key: [ OK ]
Generating SSH2 DSA host key: [ OK ]
Starting sshd: [ OK ]

[root@ee8961b00872 /]# chkconfig sshd on

退出容器并保存更改

exit

现在容器已经改变了,使用docker commit 命令来提交更新后的副本

FengZhen$ docker commit -m ‘install openssh‘ -a ‘Docker FZ‘ ee8961b00872 centos6:ssh
sha256:c524261c526e33f69c88137c40cd3b37b47fe28456e18829f17c10172c37a8cc

其中,-m来指定提交的说明信息, -a可以指定更新的用户信息

启动新的容器并打通22端口

FengZhen$ docker run -d -p 50001:22 centos6:ssh /usr/sbin/sshd -D
b32b35215f14fd97ccee644a2aacd36027db975001d8e58fe332c7f52f7cf2f2
FengZhen$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b32b35215f14 centos6:ssh "/usr/sbin/sshd -D" 8 minutes ago Up 8 minutes 0.0.0.0:50001->22/tcp 

端口成功绑定到宿主主机50001上

ssh连接容器

FengZhen$ ssh root@localhost -p 50001
The authenticity of host ‘[localhost]:50001 ([::1]:50001)‘ can‘t be established.
RSA key fingerprint is SHA256:qvyvwqtXimyC+lN1fiLENbpgdjgO9tvCT89hs/DUhBY.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘[localhost]:50001‘ (RSA) to the list of known hosts.
root@localhost‘s password: 
[root@b32b35215f14 ~]#

成功

Docker-为镜像添加SSH服务

标签:sbin   dsa   erp   后台   perm   created   ping   配置文件   hang   

原文地址:https://www.cnblogs.com/EnzoDin/p/9215695.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!