使用ssh管理docker

  1. 创建容器
[root@Docker1 ~]# docker run -itd --name sshd centos:7 /bin/bash	#创建容器
395005f196c384e34db2bb4c4115cf36d90ce5d02e794734a72aa04937a81a0d
[root@Docker1 ~]# docker exec -it sshd /bin/bash	#登录容器
  1. 进入容器,并进行安装ssh和启动ssh的相应操作
[root@395005f196c3 /]# yum -y install openssh-server openssh-clients passwd iproute net-tools
#注释:
	openssh-server:我们本机的服务器
	openssh-clients:客户端
	passwd:为容器设置密码
	iproute:安装这个可以查看容器的IP
	net-tools:过滤端口号
[root@395005f196c3 /]# passwd root	#设置密码
Changing password for user root.
New password: #新密码
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
Retype new password: #重新输入密码
passwd: all authentication tokens updated successfully.
[root@395005f196c3 /]# cat /usr/lib/systemd/system/sshd.service 
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS	#启动ssh服务
ExecReload=/bin/kill -HUP $MAINPID		#关闭ssh服务
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
[root@395005f196c3 /]# /usr/sbin/sshd -D $OPTIONS	#启动ssh服务,使用yum安装的服务否可以使用这个方法来启动服务
#执行了启动命令后会发现有以下的错误
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
sshd: no hostkeys available -- exiting.
#解决方法
[root@395005f196c3 /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
[root@395005f196c3 /]# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
[root@395005f196c3 /]# ssh-keygen -q -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
#注释:
	-q: 不显示内容,是否显示在显示屏上
	-t:指定密钥的类型
	-b:密钥长度
	-f:生成密钥文件的存放位置
	-N:原始数据替换
[root@395005f196c3 /]# vi /etc/ssh/sshd_config
#修改以下内容
     #解开注释,允许root用户登录
     38 PermitRootLogin yes
     #这是pam模块使用sshd,容器中没有这个模块,所以需要注释
     96 # UsePAM no
     #解开以下注释并修改值为no
     109 UsePrivilegeSeparation no
[root@395005f196c3 /]# cat /usr/lib/systemd/system/sshd.service
#找到这一行,查看启动服务的命令
ExecStart=/usr/sbin/sshd -D $OPTIONS
[root@395005f196c3 /]# /usr/sbin/sshd -D $OPTIONS &	#&符号代表的是后台运行
[1] 128
[root@395005f196c3 /]# exit
exit
  1. 使用ssh登录容器实现管理
[root@Docker1 ~]# ssh root@172.17.0.2
The authenticity of host '172.17.0.2 (172.17.0.2)' can't be established.
ECDSA key fingerprint is SHA256:lGmRsDAbE90+JyqAMMPD3iuXyZGVEIvzbfuwIH93TMU.
ECDSA key fingerprint is MD5:48:ae:b2:07:ec:e0:66:97:45:e3:ad:86:dc:f0:34:06.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.17.0.2' (ECDSA) to the list of known hosts.
root@172.17.0.2's password:
  1. 安装http服务并启动http服务
[root@395005f196c3 ~]# yum -y install httpd
[root@395005f196c3 ~]# cat /usr/lib/systemd/system/httpd.service
#找到此行,此行是启动http服务的命令
ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND
#启动服务
[root@395005f196c3 ~]# /usr/sbin/httpd $OPTIONS -DFOREGROUND &
#查看有没有80端口
[root@395005f196c3 ~]# netstat -anput | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      187/httpd   
#释义文件里面的内容
ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND	#开启服务
ExecReload=/usr/sbin/httpd $OPTIONS -k graceful	#重新加载服务
ExecStop=/bin/kill -WINCH ${MAINPID}	#关闭服务        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值