docker 安装CenterOS 并设置SSH远程

1.使用Docker下载CentOS镜像

输入命令,下载centos的镜像

docker pull centos

下载完成后,使用命令docker images查看本地镜像列表

docker centos7容器安装ssh服务 docker centos ssh_docker

2.Docker启动CentOS镜像

输入以下命令,启动CenterOS容器

docker run --privileged -d  --name=centos_server 1e1148e4cc2c /usr/sbin/init

–privileged 和 /usr/sbin/init 很重要!!!!
不然后面那你会发现启动ssh服务的时候,会报错:
Failed to get D-Bus connection: Operation not permitted

3.进入CentOS镜像容器,修改Root密码

输入以下命令查看正在运行的容器

docker ps

docker centos7容器安装ssh服务 docker centos ssh_CentOS_02


输入命令,进入容器里面

docker exec -it centos_mysql_tomcat /bin/bash

docker centos7容器安装ssh服务 docker centos ssh_centos_03

输入命令 passwd -d root 清除root账号的密码,输入命令 passwd root进行修改root密码,然后重复两次输入新密码,如:123456

docker centos7容器安装ssh服务 docker centos ssh_centos_04

4.修改ssh配置,允许root登录

进入容器之后进行编辑ssh文件,如果没有ssh,需要先安装:

查看是否安装了ssh-server服务命令:yum list installed | grep openssh-server

docker centos7容器安装ssh服务 docker centos ssh_CentOS_05


如果如上图那样,表示已经安装好了

安装ssh-client命令:yum install openssh-clients

安装ssh-server命令:yum install openssh-server

找到了 /etc/ssh/ 目录下的sshd服务配置文件 sshd_config,用Vim编辑器打开vi sshd_config

将文件中,关于监听端口、监听地址前的 # 号去除

docker centos7容器安装ssh服务 docker centos ssh_CentOS_06

开启允许远程登录

docker centos7容器安装ssh服务 docker centos ssh_centos_07

开启使用用户名密码来作为连接验证

docker centos7容器安装ssh服务 docker centos ssh_CentOS_08

按下Esc,输入命令 :wq 保存、退出。

5.开启ssh服务

输入命令ps -e | grep sshd 检查是否开启了ssh服务 或 输入netstat -an | grep 22 检查 22 号端口是否开启监听
输入命令 service sshd startsystemctl start sshd.service 开启ssh服务
如果出现service: command not found,则先安装service。

  1. 输入命令 yum list | grep initscripts 查看版本


docker centos7容器安装ssh服务 docker centos ssh_CentOS_09



  1. 输入命令 yum install initscripts -y 安装service
  2. 输入命令 service sshd startsystemctl start sshd.service 开启ssh服务
  3. 输入命令ps -e | grep sshd 检查是否开启了ssh服务


docker centos7容器安装ssh服务 docker centos ssh_centos_10


启动sshd服务命令 systemctl start sshd.service 重启 sshd服务命令 systemctl restart sshd.service 设置服务开启自启命令 systemctl enable sshd.service

6.远程端口映射

  1. 先使用commit命令提交docker的容器镜像 docker commit 52fd5891c694 centos_ssh (52fd5891c694 为容器id、centos_ssh镜像名称)
  2. 将新的镜像启动,并将docker服务器的50001端口映射到容器的22端口上
    docker run --privileged -d -p 50001:22 --name=centos_ssh_servier 371a214b38b5 /usr/sbin/init
  3. 打开主机防火墙端口 50001 sudo firewall-cmd --add-port=50001/tcp
  4. 远程ssh访问 192.168.0.105:50001