• docker系列(1):docker安装连接


    环境说明:

    设置yum源:

    wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
    sed -i 's#download.docker.com#mirrors.ustc.edu.cn/docker-ce#g' /etc/yum.repos.d/docker-ce.repo
    yum install docker-ce -y

     修改启动文件:

    vim /usr/lib/systemd/system/docker.service
    ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://192.168.1.101:2375
    (设置本地的Docker daemon启动参数,使其开启socket端口) systemctl daemon-reload systemctl enable docker.service systemctl restart docker.service

    测试链接:

    docker -H 192.168.1.100 info

    启用 TLS 安全连接:

    参考: https://www.jianshu.com/p/7ba1a93e6de4

    使用 Linux 下的 openssl 生成密钥

    ├── ca-key.pem       # 妥善保管,连接时用不到
    ├── ca.pem           # clent & server
    ├── ca.srl           # 用不到
    ├── cert.pem         # client
    ├── client.csr       # 请求文件
    ├── extfile.cnf      # 配置文件
    ├── key.pem          # client
    ├── server-cert.pem  # server
    ├── server.csr       # 请求文件
    └── server-key.pem   # server
    # 生成 CA 私钥
    
    $ openssl genrsa -aes256 -out ca-key.pem 4096
    
    # 需要输入两次密码(自定义)
    
    # 生成 CA 公钥
    
    $ openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
    
    # 输入上一步中设置的密码,然后需要填写一些信息
    
    # 下面是服务器证书生成
    
    # 生成服务器私钥
    
    $ openssl genrsa -out server-key.pem 4096
    
    # 用私钥生成证书请求文件
    
    $ openssl req -subj "/CN=localhost" -sha256 -new -key server-key.pem -out server.csr
    
    $ echo subjectAltName = IP:192.168.199.100,IP:192.168.57.110,IP:127.0.0.1 >> extfile.cnf
    
    # 允许服务端哪些 IP 或 host 能被客户端连接。
    
    $ echo extendedKeyUsage = serverAuth >> extfile.cnf
    
    # 用 CA 来签署证书
    
    $ openssl x509 -req -days 365 -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.cnf
    
    # 用 CA 来签署证书
    
    $ openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem 
      -CAcreateserial -out cert.pem -extfile extfile.cnf
    
    # 再次输入第一步设置的密码
    
    # 删除文件,更改文件权限
    
    $ rm -v client.csr server.csr
    
    $ chmod -v 0400 ca-key.pem key.pem server-key.pem
    
    $ chmod -v 0444 ca.pem server-cert.pem cert.pem

    把   server-cert.pem   server-key.pem 三个文件移动到服务端 /etc/docker/ 文件夹中。

    配置daemon.json:

    vim /etc/docker/daemon.json
    {
            "tls": true,
            "tlsverify": true,
            "tlscert": "/etc/docker/server-cert.pem",
            "tlskey": "/etc/docker/server-key.pem",
            "tlscacert": "/etc/docker/ca.pem",
            "hosts": ["unix:///var/run/docker.sock","tcp://192.168.1.100:2376"],
            "registry-mirrors": ["https://registry.docker-cn.com"]
    }

     备注:daemon.json中加入启动参数后需修改启动文件,否则启动参数冲突无法启动

    systemctl daemon-reload

    systemctl restart docker

    客户端链接:

    常规链接已无法链接:

    docker --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/cert.pem --tlskey=/etc/docker/key.pem -H tcp://192.168.1.100:2376 info

    简化客户端链接:

    cp client/* ~/.docker

    追加环境变量

    echo -e "export DOCKER_HOST=tcp://192.168.57.110:2376 DOCKER_TLS_VERIFY=1" >>~/.bashrc
    docker info
  • 相关阅读:
    mysq 日期相减
    说说时间观与时间管理——北漂18年(71)
    ionic之切换开关
    ionic之单选框
    SELECT ... LOCK IN SHARE MODE和SELECT ... FOR UPDATE locks在RR模式下可以看到最新的记录
    14.5.2.3 Consistent Nonlocking Reads 一致性非锁定读
    14.5.2.2 autocommit, Commit, and Rollback
    14.5.2 事务隔离级别
    对于唯一索引使用唯一条件搜索, InnoDB 只锁定找到的index record,不是它之前的区间
    mysql explain 解释
  • 原文地址:https://www.cnblogs.com/shiji888/p/11028949.html
Copyright © 2020-2023  润新知