如果还没有在这个网址注册账号的话,先注册一个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主节点无密码登录从节点。