如果还没有在这个网址注册账号的话,先注册一个https://hub.docker.com/;账号注册成功后,然后在主机上(不是容器)新开一个终端,输入以下信息:

docker login

输入相应的用户名、密码,然后会提示登录成功。

有时会提示未连接上,这是可能是因为没有开启doker

$ sudo service docker start  //开启Docker 服务
$ sudo chkconfig docker on   //开机启动

1、下载centos7的镜像

docker pull centos7 

2、查看已有的镜像,将看到有个名为docker.io/centos的镜像

docker images

3、基于centos镜像,创建一个名为centos7ssh的容器

docker run -it  --name  centos7ssh  centos  /bin/bash

4、进入容器后,升级并安装ssh服务端和客户端,服务端能让其他主机远程登录本机,客户端能让本机远程登录其他主机

yum -y update

yum -y install passwd openssl openssh-server  openssh-clients

5、创建 /var/run/sshd/目录,要不然sshd服务启动会报错

mkdir  /var/run/sshd/

6、编辑sshd的配置文件/etc/ssh/sshd_config,将其中的UsePAM yes改为UsePAM no

可以进入sshd_config文件中去修改,也可以使用命令:

 sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

7、创建公私密钥,输入命令后,直接按两次enter键确认就行了

 ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

 ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key

 ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key

8、完成上述几步后,可以开启ssh服务了

/usr/sbin/sshd -D &


此时使用命令ps -ef | grep sshd  便可以看到


输入命令

yum -y install lsof

 lsof -i:22          //如果在/etc/ssh/sshd_config文件中将端口22修改了,那么填写你修改了的端口


9、修改root密码

passwd 

然后输入设置的密码

10、测试

a、登录其他主机

输入命令ssh localhost,然后输入之前设置的root密码


上图中可以看到已经登录到本机了,也就说容器中的主机拥有了ssh远程登录其它主机的能力,当然你也可以登录其他主机。

要退出的话,输入命令exit即可。

b、宿主机能登录本机(容器中的主机)

输入命令vi  /etc/hosts


得到容器中的主机的ip地址172.17.0.5(可能和你得到的不一样)

然后在宿主机中开启一个新的终端输入命令

ssh root@172.17.0.5

输入刚刚设置的密码,即可以ssh登录到容器中的主机了


11、配置ssh无密码登录

ssh-keygen -t rsa

cd ~/.ssh

cat id_rsa.pub >> authorized_keys

输入完后,这时再输入命令

ssh localhost

发现并不用在输入命令了:)。

ssh无密码登录可用hadoop集群中master主节点无密码登录从节点。


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐