docker centos7容器 安装ssh服务

docker安装好后,自己动手做个自己的docker镜像,首先需要从服务器pull下一个基础的镜像,这里用centos7
(最好是root用户下,我虚拟机中的docker普通用户运行docker提示服务没有运行,奇怪)
一、下载官方原始镜像

docker pull centos:7 

稍等一会下载完成,使用

docker images

查看本地的镜像列表,如图,centos那个就是刚才下载的

这里写图片描述
接着用以下命令启动,使用image创建container并进入交互模式, login shell是/bin/bash

docker run -i -t centos:7 /bin/bash

接着终端就是容器中的centos的了,默认是root用户登录,接下来的操作都在容器中了
二、容器中安装passwd,openssl,openssh-server

yum install passwd openssl openssh-server -y

安装完成后
启动sshd:

# /usr/sbin/sshd -D

这时报以下错误:
[root@ b3426410ff43 /]# /usr/sbin/sshd
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

执行以下命令解决:

[root@b3426410ff43 /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''  
[root@b3426410ff43 /]# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
[root@b3426410ff43 /]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N '' 

然后,修改 /etc/ssh/sshd_config 配置信息:
UsePAM yes 改为 UsePAM no
UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no
可以用vi改,也可以用下面命令

[root@b3426410ff43 /]# sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
[root@b3426410ff43 /]# sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

修改完后,重新启动sshd

[root@b3426410ff43 /]# /usr/sbin/sshd -D

然后修改root密码

passwd root

或者直接一句修改

echo "123456" | passwd --stdin root

接着需要把修改后的镜像保存了,首先输入exit退出容器,再使用下面命令查看刚运行过的,
docker commit将修改后镜像保存到本地,参数是ID,名字

#docker ps -all
CONTAINER ID IMAGE    COMMAND    CREATED       STATUS          PORTS   NAMES
b3426410ff43 centos:7  "/bin/bash" 4 minutes ago    Exited (0) 4 seconds ago      centos7ssh
#docker commit b5926410fe60 myimage/centos7-ssh

下次可以输入刚保存的名字启动修改过安装了ssh服务的镜像了。

分享一个centos7安装ssh服务后的docker-compose.yml

version: '3.7'

services:
    centos_ssh:
        image: centos:7
        container_name: centos_ssh
        ports:
            - "1022:22"
        expose:
            - "1022"
        command: 
            - bash
            - -c
            - |
                yum -y install passwd openssl openssh-server
                echo "123456" | passwd --stdin root
                ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
                ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
                ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
                sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
                sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
                /usr/sbin/sshd -D
                tail -f /dev/null

密码及映射的端口可自行修改

 

 

  • 1
    点赞
  • 5
    收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:代码科技 设计师:Amelia_0503 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值