当使用docker安装最新的centos镜像时,拉取的是centos 7镜像,使用时会出现 Failed to get D-Bus connection: Operation not permitted 的坑,尝试了使用官方介绍的方法来处理,也是挺复杂的,具体可见我写的另外一篇博文:html
Failed to get D-Bus connection: Operation not permitted , docker安装centos7之坑docker
最后仍是决定在docker中安装centos6镜像,避免这个烦心的问题json
使用官方的docker hub拉取centos6镜像时,老是会出现下载失败,试了好屡次都是这样centos
docker pull centos:6
后来经过配置国内的docker镜像源,如下载centos6镜像缓存
一、配置国内docker镜像源bash
使用中国科学大学的docker镜像缓存,在配置文件 /etc/docker/daemon.json 中加入如下内容(若是没有该文件,则新增):微信
{ "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"] }
从新启动dockerdless
sudo service docker restart
二、拉取centos6镜像ssh
docker pull centos:6
三、建立centos6容器curl
docker run --name mycentos -it centos:6 /bin/bash
进入到centos6以后,默认已是有which、ifconfig、less、ip等经常使用命令了,而若是是在docker中使用centos7镜像时,是没有以上这些命令的,要从新安装
四、使用yum安装ssh
设置国内的yum镜像源(阿里云的centos镜像源),下载速度会大大提高,使用默认yum镜像也行,速度慢不少
curl http://mirrors.aliyun.com/repo/Centos-6.repo > /etc/yum.repos.d/CentOS-Base-6-aliyun.repo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak yum makecache
yum install -y openssh-clients openssh-server
注意:刚开始进入到docker中的centos6时,是没有service这个命令的,而当安装 openssh 时,里面会依赖到 initscripts 软件包,这个将自动进行安装,安装后就有 service 命令可使用了,很方便
启动ssh
[root@14c0ec213102 /]# chkconfig sshd on [root@14c0ec213102 /]# service sshd start Generating SSH2 RSA host key: [ OK ] Generating SSH1 RSA host key: [ OK ] Generating SSH2 DSA host key: [ OK ] Starting sshd: [ OK ]
在docker的centos6中,启动ssh时,会自动建立ssh的rsa、dsa密钥,而若是是在docker中的centos7刚开始启动ssh时,则须要建立相应的密钥,不然会报相关的密钥不存在
# docker 中首次启动 centos 7 的 ssh 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
五、修改ssh配置
启动好ssh后,还要修改一下配置,不然会链接后自动关闭,链接本机或另的机器ssh链接过来都会
[root@14c0ec213102 /]# ssh localhost root@localhost's password: Connection to localhost closed.
修改ssh的配置文件
vi /etc/ssh/sshd_config
将第97行的UsePAM yes,改成 UsePAM no
保存退出,重启ssh
[root@14c0ec213102 /]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
如今就能正常使用ssh链接访问了
[root@14c0ec213102 /]# ssh localhost root@localhost's password: Last login: Sun Jun 4 15:50:46 2017 from 172.17.42.1
将UsePAM设置为no,主要是禁止PAM验证,usePam为非对称密钥认证 UsePam,若是是yes的话非对称密钥验证失败,仍然可用口令登陆
欢迎关注本人的微信公众号“大数据与人工智能Lab”(BigdataAILab),获取更多资讯