Docker 开启远程端口


Docker 开启远程端口

方式一

  • 1.修改/etc/docker/daemon.json 文件 若不存在则创建

    vim /etc/docker/daemon.json
    
    {
        "registry-mirrors": [
             "https://1q2uhuqr.mirror.aliyuncs.com"
           ],
           "hosts": [
               "tcp://0.0.0.0:2375",
               "unix:///var/run/docker.sock"
           ]
    }
    
    安全认证方式
    {
        "registry-mirrors": [
             "https://1q2uhuqr.mirror.aliyuncs.com"
           ],
           "hosts": [
               "tcp://0.0.0.0:2375",
               "unix:///var/run/docker.sock"
           ],
        "tls": true,  #默认 false, 启动TLS认证开关
        "tlscacert": "", #默认 ~/.docker/ca.pem,通过CA认证过的的certificate文件路径
        "tlscert": "", #默认 ~/.docker/cert.pem ,TLS的certificate文件路径
        "tlskey": "",#默认~/.docker/key.pem,TLS的key文件路径
    
        "tlsverify": true,#默认false,使用TLS并做后台进程与客户端通讯的验证
        "tls": true,
        "tlsverify": true,
        "tlscacert": "",
        "tlscert": "",
        "tlskey": "",
    }
    
    1. 修改/usr/lib/systemd/system/docker.service 文件

      vim /usr/lib/systemd/system/docker.service
      
      13 #ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
      14 ExecStart=/usr/bin/dockerd  --containerd=/run/containerd/containerd.sock
      
  • 3.重新启动

    systemctl daemon-reload
    systemctl restart docker.service
    

方式二

  • 1.修改/usr/lib/systemd/system/docker.service 文件

    vim /usr/lib/systemd/system/docker.service
    
    13 #ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    14 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
    --containerd=/run/containerd/containerd.sock
    
    #安全认证方式
    14 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:2375 -H unix://var/run/docker.sock
    --containerd=/run/containerd/containerd.sock
    
  • 2.重新启动

    systemctl daemon-reload
    systemctl restart docker.service
    

证书生成流程

主要流程有三步

  1. 生成 ca 密钥和证书
#生成ca私钥(使用aes256加密)
read -s PASSWORD
openssl genrsa -aes256 -passout pass:$PASSWORD  -out ca-key.pem 2048
#生成ca证书,填写配置信息
openssl req -new -x509 -passin "pass:$PASSWORD" -days 365 -key ca-key.pem -sha256 -out ca.pem
12345

2.生成 server 密钥和证书

#生成server证书私钥文件
openssl genrsa -out server-key.pem 2048
#生成server证书请求文件
openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server.csr
#使用CA证书及CA密钥以及上面的server证书请求文件进行签发,生成server自签证书
openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial  -out server-cert.pem

1234567

3.生成 client 密钥和证书

#生成client证书RSA私钥文件
openssl genrsa -out key.pem 2048
#生成client证书请求文件
openssl req -subj '/CN=client' -new -key key.pem -out client.csr

sh -c 'echo "extendedKeyUsage=clientAuth" > extfile.cnf'
#生成client自签证书(根据上面的client私钥文件、client证书请求文件生成)
openssl x509 -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem  -passin "pass:$PASSWORD" -CAcreate

创建脚本

#创建 Docker TLS 证书
#!/bin/bash

#相关配置信息
SERVER="192.168.33.76"
PASSWORD="pass123456"
COUNTRY="CN"
STATE="广州省"
CITY="广州市"
ORGANIZATION="公司名称"
ORGANIZATIONAL_UNIT="Dev"
EMAIL="492376344@qq.com"

###开始生成文件###
echo "开始生成文件"

#切换到生产密钥的目录
cd /etc/docker
#生成ca私钥(使用aes256加密)
openssl genrsa -aes256 -passout pass:$PASSWORD  -out ca-key.pem 2048
#生成ca证书,填写配置信息
openssl req -new -x509 -passin "pass:$PASSWORD" -days 3650 -key ca-key.pem -sha256 -out ca.pem -subj "/C=$COUNTRY/ST=$STATE/L=$CITY/O=$ORGANIZATION/OU=$ORGANIZATIONAL_UNIT/CN=$SERVER/emailAddress=$EMAIL"

#生成server证书私钥文件
openssl genrsa -out server-key.pem 2048
#生成server证书请求文件
openssl req -subj "/CN=$SERVER" -new -key server-key.pem -out server.csr
#使用CA证书及CA密钥以及上面的server证书请求文件进行签发,生成server自签证书
openssl x509 -req -days 3650 -in server.csr -CA ca.pem -CAkey ca-key.pem -passin "pass:$PASSWORD" -CAcreateserial  -out server-cert.pem

#生成client证书RSA私钥文件
openssl genrsa -out key.pem 2048
#生成client证书请求文件
openssl req -subj '/CN=client' -new -key key.pem -out client.csr

sh -c 'echo "extendedKeyUsage=clientAuth" > extfile.cnf'
#生成client自签证书(根据上面的client私钥文件、client证书请求文件生成)
openssl x509 -req -days 3650 -in client.csr -CA ca.pem -CAkey ca-key.pem  -passin "pass:$PASSWORD" -CAcreateserial -out cert.pem  -extfile extfile.cnf

#更改密钥权限
chmod 0400 ca-key.pem key.pem server-key.pem
#更改密钥权限
chmod 0444 ca.pem server-cert.pem cert.pem
#删除无用文件
rm client.csr server.csr

echo "生成文件完成"
###生成结束###

文章作者: shipengzhen
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 shipengzhen !
 上一篇
CentOS Docker 安装 CentOS Docker 安装
CentOS Docker 安装Docker 支持以下的 64 位 CentOS 版本: CentOS 7 CentOS 8 更高版本… 使用官方安装脚本自动安装安装命令如下: curl -fsSL https://get.docke
2021-02-22
下一篇 
安装nexus 安装nexus
安装nexusdocker 方式安装1.1 创建docker-compose.ymlversion: '3.1' services: nexus: image: sonatype/nexus3 restart: alwa
2021-02-22
  目录