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 ...
随机推荐
- Netty源码分析之Reactor线程模型详解
上一篇文章,分析了Netty服务端启动的初始化过程,今天我们来分析一下Netty中的Reactor线程模型 在分析源码之前,我们先分析,哪些地方用到了EventLoop? NioServerSocke ...
- [hdu7020]Array
(这是一个线性的做法) 显然对于合法的区间,众数是唯一的,因此不妨枚举众数,将众数标记为1.其余数标记为-1,此时问题即求有多少个区间和大于0 考虑暴力的做法:从左到右枚举右端点,记当前前缀和为$to ...
- [atARC101E]Ribbons on Tree
令$f(E')$表示强制$E'$中的边不被覆盖的方案数,根据容斥,$ans=\sum_{E'\subseteq E}(-1)^{|E'|}f(E')$ 对于给定的$E'$,$f(E')$即将$E'$中 ...
- Redis | 第5章 Redis 中的持久化技术《Redis设计与实现》
目录 前言 1. RDB 持久化 1.1 RDB 文件的创建与载入 1.2 自动间隔性保存 1.2.1 设置保存条件 1.2.2 dirty 计数器和 lastsave 属性 1.2.3 检查保存条件 ...
- 关于阿里云图标的使用 iconfont
iconfont 关于阿里云图标库使用的介绍 对于添加到网页中的iconfont可使用以下几种方式: 首先需要进入阿里云图标库官网进行对应的下载iconfont-阿里巴巴矢量图标库 将需要的图标加入到 ...
- 8.2 k8s 基于StatefulSet运行mysql 一主多从 ,数据通过pv/pvc结合NFS服务器持久化
1.准备mysql和xtrabackup镜像 下载mysql官方镜像并上传到本地harbor docker pull mysql:5.7 docker tag m ysql:5.7 192.168.1 ...
- python 内置模块续(二)
目录 python 内置模块补充 1.hashlib模块 简易使用: 高级使用: 进阶使用: 加盐处理: 校验文件一致性 2.logging日志模块 日志等级 常用处理 "四大天王" ...
- [JSC2021 A~D + F]
半小时打完了\(A~D\),想要一发\(F\)冲进前\(100\),结果平衡树常数大\(T\)了.据说\(G\)是矩阵树定. \(A\) 放代码吧. A // code by Dix_ #includ ...
- Python中关于join函数的陷阱?
目录 说明 数据说明 正确示例 错误示例 解决办法 说明 最近在用Python的join函数连接多个列表时,出现了如下两个错误,即合并类型不一致.折腾了很久才找到原因,真是基础不牢,地动山摇. Typ ...
- Linux基础——常用命令
find /grep /xargs /sort /uniq /tr /cut /paste /sed /awk......待续...... 1.find 名字查找: find . -name file ...