Swarm集群第一篇: 安装Docker并配置安全连接

小狐狸
小狐狸 2019-08-14 18:33
阅读需:0

安装Docker并配置证书

第一部分: Docker 安装

1. 更新系统软件源
    yum -y update
2. 卸载原有Docker
    yum remove -y docker docker-common docker-selinux docker-engine
3. 设置 yum 源
    3.1 安装 yum-utils , 这样就能使用 yum-config-manager 工具设置 Yum 源。
        yum install -y yum-utils device-mapper-persistent-data lvm2
    3.2 添加 Docker 的 yum 源
        yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    3.3 更新 yum 索引
        yum makecache fast
4. 安装最新版的Docker
    yum install docker-ce
5. 启动Docker
    systemctl start docker
6. 设置Docker开机启动
    systemctl enable docker
7. 验证Docker是否成功安装
    7.1 查看Docker版本
        docker version
    7.2 运行hello-world
        docker run hello-world
        运行后能看到Hello from Docker!说明安装正确
8. 安装docker-compose
    8.1 下载docker-compose
        curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    8.2 赋予执行权限
        chmod +x /usr/local/bin/docker-compose
    8.3 查看版本验证是否成功
        docker-compose --version

第二部分: 生成证书

1. 在/usr/local目录下创建个文件夹,这里取名叫ca,然后进入ca文件夹中
    mkdir -p /usr/local/ca
    
    cd /usr/local/ca
2. 创建ca证书key
    openssl genrsa -aes256 -out ca-key.pem 4096
3. 创建ca证书, 根据提示分别输入国家,省份,城市,组织,等一系列信息
    openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
4. 生成server-key.pem
    openssl genrsa -out server-key.pem 4096
5. 创建证书签名文件,记得把$HOST替换成自己的服务器IP或域名
    openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr
6. 配置证书白名单,注意:Host和IP都可以配置多个
    echo subjectAltName = DNS:$HOST,IP:$IP >> extfile.cnf
    
    如需多个: echo subjectAltName = DNS:$HOST,DNS:$HOST,IP:$IP,IP:$IP >> extfile.cnf
7. 执行:
    echo extendedKeyUsage = serverAuth >> extfile.cnf
8. 用以生成ca-key,需输入之前的密码
    openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out server-cert.pem -extfile extfile.cnf
9. 生成客户端所需的key
    openssl genrsa -out key.pem 4096
10. 生成客户端key的签名
    openssl req -subj '/CN=client' -new -key key.pem -out client.csr
11. 写入客户端授权参数
    echo extendedKeyUsage = clientAuth >> extfile.cnf
12. 创建客户端证书,需要输入前面设置的密码
    openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out cert.pem -extfile extfile.cnf
13. 删除不需要的文件
    rm -v client.csr server.csr
14. 修改证书文件权限
    chmod -v 0400 ca-key.pem key.pem server-key.pem
    
    chmod -v 0444 ca.pem server-cert.pem cert.pem

15. 下载客户端认证证书到本地
    ca.pem , cert.pem, key.pem  后面连接Docker都需要这三个文件

到此证书文件已经创建完毕

#### 第二: 配置Docker加密连接

第三部分: 配置Docker加密连接

1. 进入在上一步生成证书的目录,归集服务器证书
    cp server-*.pem  /etc/docker/
    
    cp ca.pem /etc/docker/
2. 修改Docker配置
    vi /lib/systemd/system/docker.service
    
    修改文件,替换ExecStart如下:
    ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem -H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock
3. 重启Docker
    systemctl daemon-reload
    
    systemctl restart docker
4. 防火墙放开 2376 端口
5. 测试连接
   curl https://$IP:2376/images/json --cert cert.pem --key key.pem --cacert ca.pem

附上Markdown说明

安装Docker.md

评论
  • 消灭零回复