idea秘钥集成docker
docker开启远程访问
1.修改docker配置,让其可远程操作:
$ vim /lib/systemd/system/docker.service
将文件内的 ExecStart注释。 新增如下行。
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
重新加载文件:
systemctl daemon-reload
重启:
systemctl restart docker.service
本地检验是否生效:
curl http://127.0.0.1:2375/info
如图
浏览器访问地址:http://ip:2375/version
如步骤4上图已经生效,浏览器时却显示链接超时:检查云服务器是否配置安全组及防火墙。
防火墙开启2375端口: firewall-cmd --zone=public --add-port=2375/tcp --permanent
更新防火墙配置: firewall-cmd --reload
以上便开启了docker远程访问,但是对于生成环境,这样配置任何人都可以链接,一点安全性不存在,所以需要操作下一步安全远程访问
docker安全远程访问
以下 www.bai.com 所有全部替换成你的云服务器。其他照着命令一一输入即可生成。
服务端
创建CA私钥和CA公钥
1.1 首先创建一个ca文件夹用来存放私钥跟公钥
mkdir -p /usr/local/ca
cd /usr/local/ca
1.2 然后在Docker守护程序的主机上,生成CA私钥和公钥ca-key.pem:
openssl genrsa -aes256 -out ca-key.pem 4096
输入密码生成私钥证书信息ca.pem
openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem
依次输入:访问密码、国家、省、市、组织名称、单位名称、名字、邮箱等生成服务器私钥server-key.pem
openssl genrsa -out server-key.pem 4096
用CA签署server私钥,生成server.csr
允许使用 www.baidu.com 进行连接:
openssl req -subj "/CN=www.baidu.com" -sha256 -new -key server-key.pem -out server.csr
匹配白名单,生成extfile.cnf
echo subjectAltName = DNS:$HOST,IP:XX.XX.XX.XX,IP:XX.XX.XX.XX >> extfile.cnf
注意:DNS:$HOST 替换成域名网址,IP:$HOST替换为自己的ip地址。配置0.0.0.0,允许所有的ip可以链接。
echo subjectAltName = DNS:www.bai.com,IP:0.0.0.0 >> extfile.cnf
将Docker守护程序密钥的扩展使用属性设置为仅用于服务器身份验证:
echo extendedKeyUsage = serverAuth >> extfile.cnf
- CA证书生成服务器签名证书server-cert.pem
openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem \
-CAcreateserial -out server-cert.pem -extfile extfile.cnf
执行后需要输入上方设置的密码
客户端
1.生成客户端私钥key.pem
openssl genrsa -out key.pem 4096
2. 证书签名请求client-csr
openssl req -subj '/CN=client' -new -key key.pem -out client.csr
3.使秘钥适合客户端身份验证,创建扩展配置文件:
echo extendedKeyUsage = clientAuth >> extfile.cnf
echo extendedKeyUsage = clientAuth > extfile-client.cnf
4.CA证书生成生成客户端签名
openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem \
-CAcreateserial -out cert.pem -extfile extfile-client.cnf
5.删除不需要的文件
生成后cert.pem,server-cert.pem您可以安全地删除两个证书签名请求和扩展配置文件:
rm -v client.csr server.csr extfile.cnf extfile-client.cnf
修改权限
- 修改秘钥文件为只读
chmod -v 0400 ca-key.pem key.pem server-key.pem
- 修改证书文件为只读
chmod -v 0444 ca.pem server-cert.pem cert.pem
修改docker配置
1.文件copy到docker文件下
cp server-*.pem /etc/docker/
cp ca.pem /etc/docker/
2.修改配置文件
vim /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/usr/local/ca/ca.pem --tlscert=/usr/local/ca/server-cert.pem --tlskey=/usr/local/ca/server-key.pem -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
3.重新加载daemon并重启docker
systemctl daemon-reload
systemctl restart docker
4.从目录 /usr/local/ca 下找出ca-key.pem ca.pem cert.pem key.pem 4个文件
IDEA集成docker部署项目
1. 新建DockerFile,配置启动服务
新建DockerFile 文件,一般放在项目根目录下,输入以下配置。
# jdk版本
FROM java:8
#FROM openjdk:8u201-jdk-alpine3.9
#作者
MAINTAINER BolingCavalry <zq2599@gmail.com>
#系统编码
#ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#声明一个挂载点,容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp
#应用构建成功后的jar文件被复制到镜像内,名字也改成了app.jar
ADD target/sysadmin.jar app.jar
#启动容器时的进程
ENTRYPOINT ["java","-jar","/app.jar"]
#暴露8080端口
EXPOSE 8080
2. Docker 连接配置
3. IDEA新建启动
Maven 命令:clean package -U -DskipTests
这里要注意image args镜像名称配置要与DockerFile文件中
ADD target/sysadmin.jar app.jar 相对应
参考地址:
https://www.jb51.net/article/190412.htm
https://cloud.tencent.com/developer/article/1494921
idea秘钥集成docker的更多相关文章
- docker ssh秘钥免密登录
一.概述 有一台跳板机,已经实现了免密登录后端服务器.但是我写了一个django项目,它是运行在容器中的,也需要免密登录后端服务器. 虽然可以在容器中手动做一下免密登录,但是容器重启之后,之前做的设置 ...
- Alipay秘钥问题
有三种秘钥一个是应用公钥 一个是支付宝公钥 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Monaco } span.s1 { text-d ...
- ZeroMQ接口函数之 :zmq_z85_encode – 使用Z85算法对一个二进制秘钥进行加密,输出可打印的文本
ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq-z85-encode zmq_z85_encode(3) ØMQ Manual - ØMQ/4. ...
- sshd 指定端口,指定秘钥文件
scp -i ~/test -P22219 SRC/ root@10.2.227.76:/data/ #sshd的端口指定的是22219, -i 指定秘钥文件 指定秘钥文件需要注意的是,需要提 ...
- 将ubuntu的id_rsa秘钥转为putty的ppk格式
1.使用putty的puttygen.exe: 2.导入需要转换的秘钥 3.保存私钥
- 生成秘钥文件 sn.exe(Strong Name Tool)
Visual Studio 内置 Strong Name Tool, 我们直接运行"VS开发人员命令提示"就可以生成秘钥文件. 秘钥文件包含公钥和私钥. 来看这个例子: 在文件夹下 ...
- Hadoop.2.x_无秘钥设置
1.在实际生产环境中为Hadoop配置无秘钥登录非常有必要 # 在没有配置时: [liuwl@linux-66-64 hadoop-2.5.0]$ jps 26163 Jps [liuwl@linux ...
- 一台电脑存放多个git账户的多个rsa秘钥
未命名.html div.oembedall-githubrepos{border:1px solid #DDD;border-radius:4px;list-style-type:none;marg ...
- java加密算法--MD5加密和哈希散列带秘钥加密算法源码
package com.ompa.common.utils; import java.security.MessageDigest; import java.security.NoSuchAlgori ...
随机推荐
- CVPR 之 老照片修复
周末闲来无事,随手整理电脑里的照片,望着一张物是人非的老相片,勾起了斑驳的回忆.忽尔转念一想,何不 PS 下,但 PhotoShop 有些大且不免费自己懒得装,于是,转向免费的图像复原软件. 网上搜来 ...
- [cf1495D]BFS Trees
记$d_{G}(x,y)$表示无向图$G$中从$x$到$y$的最短路,设给定的图为$G=(V,E)$,$T$为其生成树,$E_{T}$为$T$的边集 下面,考虑计算$f(x,y)$-- 首先,对于一棵 ...
- [bzoj1107]驾驶考试
转化题意,如果一个点k符合条件,当且仅当k能到达1和n考虑如果l和r($l<r$)符合条件,容易证明那么[l,r]的所有点都将会符合条件,因此答案是一个区间枚举答案区间[l,r],考虑如何判定答 ...
- volatile不能保证数据完整性的小案例
package juc; import java.util.Collections; import java.util.HashSet; import java.util.Set; public cl ...
- SpringSecurity 小demo
SpringSecurity 首先搭建好springboot工程,然后引入springsecurity依赖. <dependency> <groupId>org.springf ...
- [NOIP2018 提高组] 旅行
考虑如果我们要回溯的话,一定要把非环上的子树都搜索完. 而在环上的一个地方回溯,相当于把环上的下一个点置于所有环的顺序的最后. 所以我们只有在环上遇到环上的最大点时且周围的点都比这个点小时非正常回溯即 ...
- Educational Codeforces Round 94 题解
我竟然比到了全场的 rk 14,incredible! A 大水题,直接输出 \(n\) 遍 \(s_n\) 即可. B 分类讨论题,放在 B 题可能难度有点大了. 直接暴力枚举你拿了多少个宝剑,然后 ...
- 解决sourceforge下载文件慢的方法
Sourceforge是一些开源软件经常用到的网站,然而国内的网站一直不稳定,如今是可以访问,但是一直无法下载,或者是下载速度慢,导致下载中断 镜像源:http://sourceforge.mirro ...
- perl 数组快速去除重复元素
这里记录两种perl数组去重的办法,一种利用哈希(hash),一种直接利用perl自带的模块List::MoreUtils内部的函数uniq. 一.利用hash去重 示例代码如下: 1 #!/usr/ ...
- Java 好用的东西
Java自带的一些好用的东西: 求一个数的每一位:(toCharArray) int i = 10;char[] s = String.valueOf(i).toCharArray(); 十进制转二进 ...