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 ...
随机推荐
- [hdu6316]Odd shops
记$m=10$,即商品的种类 记$g(x)=1+\sum_{i=1}^{m}a_{i}x_{i}$,问题即求$f_{n}(x)=g^{n}(x)$非0项数(模2意义下) 注意到$f^{2}(x)\eq ...
- AOP声明式事务
1.spring-dao.xml修改 参考上面工程配置 <?xml version="1.0" encoding="UTF-8"?> <bea ...
- 监听器watch
<label > 姓名: <input type="text" placeholder="请输入姓名" v-model="firt ...
- Codeforces 446C - DZY Loves Fibonacci Numbers(斐波那契数列+线段树)
Codeforces 题目传送门 & 洛谷题目传送门 你可能会疑惑我为什么要写 *2400 的题的题解 首先一个很明显的想法是,看到斐波那契数列和 \(10^9+9\) 就想到通项公式,\(F ...
- nmap相关
nmap -sT IP-sT(全链接扫描),获取目标IP+PORT的状态,其实是发了三个包:SYN,SYN/ACK,ACK,类似于TCP三次握手 状态: open 开放的 closed 关闭的 fil ...
- PowerDotNet平台化软件架构设计与实现系列(05):ETCD分布式键值存储平台
ETCD目前在PowerDotNet已经被用于注册中心和配置管理(常见的配置中心在PowerDotNet中仅仅是一个小小的模块而已)中,作为基础设施的重要组成部分,ETCD的重要性不言而喻. 本文简单 ...
- Ubuntu 和 windows1下文件夹共享的指令
第一个是通过拖拉的方式将文件放到当前的目录下面,即 mv +路径 + . 第二个是将文件放到了硬盘里面/mnt/hgfs/linusshare/里面
- (转载)VB中ByVal与ByRef的区别
ByVal是按值传送,在传的过程中不会改变原来的值,仅仅传送的是一个副本, 而 ByRef相反,从内存地址来说,后者是同一个内存地址. ByVal 与 ByRef(默认值)这两个是子过程的参数传递时, ...
- c#年份筛选
年份: <script type="text/javascript" src="http://www.shicishu.com/down/WdatePicker.j ...
- C#数字验证
using System; using System.Collections; using System.Configuration; using System.Data; using System. ...