共计 2653 个字符,预计需要花费 7 分钟才能阅读完成。
当使用 Docker 安装最新的 CentOS 镜像时,拉取的是 CentOS 7 镜像,使用时会出现 Failed to get D-Bus connection: Operation not permitted 的坑,尝试了使用官方介绍的方法来处理,也是挺复杂的。最后还是决定在 Docker 中安装 CentOS6 镜像,避免这个烦心的问题。
使用官方的 Docker hub 拉取 CentOS6 镜像时,总是会出现下载失败,试了好多次都是这样
docker pull centos:6
后来通过配置国内的 Docker 镜像源,以下载 CentOS6 镜像
1、配置国内 docker 镜像源
使用中国科学大学的 docker 镜像缓存,在配置文件 /etc/docker/daemon.json 中加入以下内容(如果没有该文件,则新增):
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"]
}
重新启动 dockerd
sudo service docker restart
2、拉取 centos6 镜像
docker pull centos:6
3、创建 centos6 容器
docker run --name mycentos -it centos:6 /bin/bash
进入到 centos6 之后,默认已经是有 which、ifconfig、less、ip 等常用命令了,而如果是在 docker 中使用 centos7 镜像时,是没有以上这些命令的,要重新安装
4、使用 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
5、修改 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 的话非对称密钥验证失败,仍然可用口令登录。
更多 Docker 相关教程见以下内容:
Docker 安装应用(CentOS 6.5_x64) http://www.linuxidc.com/Linux/2014-07/104595.htm
Ubuntu 16.04 服务器上配置使用 Docker http://www.linuxidc.com/Linux/2017-06/145176.htm
Ubuntu 15.04 下安装 Docker http://www.linuxidc.com/Linux/2015-07/120444.htm
Docker 安装实例 http://www.linuxidc.com/Linux/2017-04/142666.htm
Docker 创建基础镜像 http://www.linuxidc.com/Linux/2017-05/144112.htm
在 Ubuntu 15.04 上如何安装 Docker 及基本用法 http://www.linuxidc.com/Linux/2015-09/122885.htm
Ubuntu 16.04 上 Docker 使用手记 http://www.linuxidc.com/Linux/2016-12/138490.htm
使用 Docker 分分钟启动常用应用 http://www.linuxidc.com/Linux/2017-04/142649.htm
Ubuntu 16.04 下 Docker 修改配置文件不生效解决办法 http://www.linuxidc.com/Linux/2017-05/143862.htm
Docker 的详细介绍:请点这里
Docker 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2018-02/15083.htm