[docker-idea-一键部署]

上一篇已经把docker安装好了,这一篇进阶,使用一下吧。

docker的使用有两种方式,一种是ca证书认证的,一种是没有认证的,没有认证的十分的不安全,黑客可以知道你的端口,进行攻击,获取你的镜像,搞你的服务。这种方式比较简单,就不说了,直接晋级ca认证的吧。

  1. ca认证的docker一键部署。
    1.1 ca认证就是服务端要生成相应的证书,客户端要想操作就必须拿着证书才行,黑客在牛批也不会知道你的证书在哪里。也拿服务没办法了吧。
  2. 生成ca证书。
    2.1 连上服务器,在指定文件夹下操作,尽量跟着来,争取一遍成功。
    2.2 首先生成存放ca证书的文件夹
    	mkdir -p /usr/local/ca
    	cd /usr/local/ca
    
    2.3 需要输入密码,自由指定,两次输入保持一致并记住,下边的步骤将会用到,暂且给“666666”。
    openssl genrsa -aes256 -out ca-key.pem
    
    2.4 根据提示分别输入国家,省份,城市,组织,等一系列信息(可以随便输,无所谓的其实),暂且都给“66”。
    openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
    
    2.5 生成server-key.pem,输入命令回车即可。
    openssl genrsa -out server-key.pem
    
    2.6 把下面的$Host换成你自己服务器外网的IP或者域名:比如:
    openssl req -subj “/CN=192.168.1.0” -sha256…
    或:
    openssl req -subj “/CN=www.baidu.com” -sha256…(有域名的写域名,该域名DNS解析后指向你的服务器)
    openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr
    
    2.7 配置白名单,也就是接下来要允许哪些ip可以连接到服务器的docker,因为已经是ssl连接,所以我推荐配置0.0.0.0,也就是所有Ip都可以连接(但只有拥有证书的才可以连接成功),这样配置好之后公司其他人也可以使用.如果你不想这样,那你可以配置Ip,用逗号分隔开.下面的$Host依旧是你服务器外网的IP或者域名,请自行替换.(这里如果你使用的是服务器Ip的话,请将前面的DNS换成IP,否则配下来连接还是不会成功,如果你使用的是服务器域名,那么就用DNS就可以了)比如:
    echo subjectAltName = DNS:www.baidu.con,IP:0.0.0.0 >> extfile.cnf
    或:
    echo subjectAltName = IP:191.3.15.44,IP:0.0.0.0 >> extfile.cnf
    echo subjectAltName = DNS:$HOST,IP:0.0.0.0 >> extfile.cnf
    
    2.8 执行命令,将Docker守护程序密钥的扩展使用属性设置为仅用于服务器身份验证
     echo extendedKeyUsage = serverAuth >> extfile.cnf
    
    2.9 执行命令,然后输入前面设置过的密码“666666”,用以生成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
    
  3. 生成客户端所需的key.pem,到时候把生成好的几个公钥私钥拷出去给客户端使用。
    openssl genrsa -out key.pem 4096
    
    3.1 执行命令
    openssl req -subj '/CN=client' -new -key key.pem -out client.csr
    
    3.2 继续执行命令
       echo extendedKeyUsage = clientAuth >> extfile.cnf
    
    3.3 生成cert.pem,需要输入前面设置的密码"666666"
    openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem \-CAcreateserial -out cert.pem -extfile extfile.cnf
    
    3.4 删除两个无用文件。
    rm -v client.csr server.csr
    
    3.5 修改权限
    chmod -v 0400 ca-key.pem key.pem server-key.pem
    chmod -v 0444 ca.pem server-cert.pem cert.pem
    
    3.6 将证书放到 /etc/docker/下
    cp server-*.pem  /etc/docker/
    cp ca.pem /etc/docker/
    
    3.7 修改docker配置 (这一步很关键,如果修改后启动报错提示如下,Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details.
    );
    vi /lib/systemd/system/docker.service
    将ExecStart=/usr/bin/dockerd
    替换为:
    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.8 使用命令 systemctl status docker.service
    ● docker.service - Docker Application Container Engine
    Loaded: loaded (/etc/systemd/system/docker.service; disabled; vendor preset: disabled)
    Active: failed (Result: start-limit) since Fri 2019-08-16 15:21:53 CST; 7s ago
    Docs: https://docs.docker.com
    Process: 14532 ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem -H https://0.0.0.0:2376 -H unix://var/run/docker.sock (code=exited, status=1/FAILURE)
    Main PID: 14532 (code=exited, status=1/FAILURE)
    则修改/etc/systemd/system/docker.service配置文件,内容同上。
    3.9 再次启动
    systemctl daemon-reload
    systemctl restart docker 
    
  4. 开放2376端口
    /sbin/iptables -I INPUT -p tcp --dport 2376 -j ACCEPT
    iptables-save
    
    4.1 重启docker
    service docker restart
    
    4.2 所有证书都已经生成了,ca文件夹下这个样子。将文件下载到本地的一个文件夹,备用。
    在这里插入图片描述
    4.3 至此,开始配合IDE使用了,打开ide安装docker插件。并重启IDe
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    点击运行吧
    在这里插入图片描述
    在这里插入图片描述
    看到项目已经启动了。
    在这里插入图片描述
    访问接口:
    在这里插入图片描述
    查看日志
    docker logs -f -t --since=“2018-10-10” --tail=10 镜像名称(项目名称)例如:
    docker logs -f -t --since=“2018-10-10” --tail=10 source-v2
    –since : 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。
    -f : 查看实时日志
    -t : 查看日志产生的日期
    -tail=10 : 查看最后的10条日志。
    edu_web_1 : 容器名称

打完收工::::

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值