• Linux(Centos)下 docker-ce安装配置(TLS认证)、docker-compose安装与配置


    Docker中文社区 https://www.docker.org.cn/index.html

    一、docker(支持TLS)及docker-compose安装与配置

    1、安装依赖包及设置阿里云镜像

    $ yum install -y yum-utils device-mapper-persistent-data lvm2   
    $ yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    $ yum clean all&&yum makecache  #重建Yum缓存
    

    2、安装 Docker-CE

    $ yum install docker-ce -y                                              #yum安装docker-ce
    $ systemctl enable docker
    $ mkdir -p /opt/docker/data/
    $ useradd -d /opt/docker/data/ -g docker docker   #创建docker用户及组并指定自定义目录/opt/docker/data/,-m有时候会失败,自己创建算了
    $ chown -R docker.docker /opt/docker/data/
    #启用TLS安全访问(服务端及客户端)
    #在Docker守护程序的主机上,生成CA私钥和公钥
    $ mkdir -p /root/.tls/
    $ cd /root/.tls/
    $ openssl genrsa -aes256 -out ca-key.pem 4096       #(输入自定义密码)
    $ openssl req -new -x509 -days 3650 -subj "/C=CN/ST=ZJ/L=HZ/O=Careyes/OU=IT/CN=域名/emailAddress=793413226@qq.com" -key ca-key.pem -sha256 -out ca.pem                      #(输入相同密码)
    #现在您已经有了CA,创建服务器密钥和证书签名请求(CSR)。确保“公用名”与您用于连接到Docker的主机名匹配
    $ openssl genrsa -out server-key.pem 4096
    $ openssl req -subj "/CN=域名" -sha256 -new -key server-key.pem -out server.csr
    #用CA签署公钥
    $ echo subjectAltName = DNS:域名,IP:内网IP地址,IP:127.0.0.1 >> extfile.cnf
    $ echo extendedKeyUsage = serverAuth >> extfile.cnf
    #生成签名证书
    $ openssl x509 -req -days 3650 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf                                #(输入相同密码)
    #创建客户端密钥和证书签名请求
    $ openssl genrsa -out key.pem 4096
    $ openssl req -subj '/CN=client' -new -key key.pem -out client.csr
    $ echo extendedKeyUsage = clientAuth > extfile-client.cnf
    $ openssl x509 -req -days 3650 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile-client.cnf
    #删除多余文件(保留5个文件,其中服务端用:ca.pem server-cert.pem server-key.pem,客户端用:ca.pem cert.pem key.pem)
    $ rm -rf ca-key.pem ca.srl client.csr extfile-client.cnf extfile.cnf server.csr
    $ vim /usr/lib/systemd/system/docker.service                            #修改docker配置
    ExecStart原配置后面新增   
    --graph=/opt/docker/data 
    --tlsverify 
    --tlscacert=/root/.tls/ca.pem 
    --tlscert=/root/.tls/server-cert.pem 
    --tlskey=/root/.tls/server-key.pem 
    -H tcp://0.0.0.0:端口 
    -H unix:///var/run/docker.sock
    #备注:graph为存储路径,unix:///var/run/docker.sock用来连接docker,字符串左边不能有空格
    #镜像加速,创建文件/etc/docker
    $ mkdir -p /etc/docker
    $ tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
    }
    EOF
    #启动加载
    $ systemctl daemon-reload && systemctl restart docker
    #查看docker信息
    $ docker info
    $ docker --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H=IP或者域名:端口 version #测试连接即可
    

    3、docker-compose 安装(最新版本1.27.4,记录时间20210111),下载时记得多试几次,才会下载正常

    #地址:https://github.com/docker/compose/releases
    $ curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64 -o /usr/local/bin/docker-compose
    $ chmod +x /usr/local/bin/docker-compose
  • 相关阅读:
    jQuery中Ajax事件beforesend及各参数含义 转
    如何组织好js代码 转
    C# 几种HtmlEncode的区别
    [转]建议Font-Size使用em单位控制大小
    JavaScript charAt() 方法
    Js中 关于top、clientTop、scrollTop、offsetTop的用法
    jquery mobile 的4个初始化事件
    JS操作JSON总结
    .html(),.text()和.val()的使用
    netstat 显示当前网络连接的统计信息
  • 原文地址:https://www.cnblogs.com/virtulreal/p/14264500.html
Copyright © 2020-2023  润新知