docker中安裝centos6

當使用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),獲取更多資訊

相關文章
相關標籤/搜索