zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    软件工程概论之web基础
    java动手动脑——异常处理
    Java动手动脑——多态和继承
    java字串
    数据结构——用栈来判断回文字符串
    java一个能记录生成多少个对象的类
    openwrt设置默认登陆密码
    在ubuntu中安装luci解决iwinfo.h No such file or directory问题
    添加mysamba
    更改默认打开wifi功能
  • 原文地址:https://www.cnblogs.com/shiji888/p/11028949.html
Copyright © 2011-2022 走看看