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
  1. 重新加载文件: systemctl daemon-reload

  2. 重启: systemctl restart docker.service

  3. 本地检验是否生效:curl http://127.0.0.1:2375/info 如图

  4. 浏览器访问地址:http://ip:2375/version

    如步骤4上图已经生效,浏览器时却显示链接超时:检查云服务器是否配置安全组及防火墙。

防火墙开启2375端口: firewall-cmd --zone=public --add-port=2375/tcp --permanent

更新防火墙配置: firewall-cmd --reload

以上便开启了docker远程访问,但是对于生成环境,这样配置任何人都可以链接,一点安全性不存在,所以需要操作下一步安全远程访问

docker安全远程访问

以下 www.bai.com 所有全部替换成你的云服务器。其他照着命令一一输入即可生成。

服务端

  1. 创建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

    输入密码

  2. 生成私钥证书信息ca.pem

    openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem

    依次输入:访问密码、国家、省、市、组织名称、单位名称、名字、邮箱等

  3. 生成服务器私钥server-key.pem

    openssl genrsa -out server-key.pem 4096

  4. 用CA签署server私钥,生成server.csr

    允许使用 www.baidu.com 进行连接:

    openssl req -subj "/CN=www.baidu.com" -sha256 -new -key server-key.pem -out server.csr

  5. 匹配白名单,生成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

  6. 将Docker守护程序密钥的扩展使用属性设置为仅用于服务器身份验证:

echo extendedKeyUsage = serverAuth >> extfile.cnf

  1. 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

修改权限

  1. 修改秘钥文件为只读

    chmod -v 0400 ca-key.pem key.pem server-key.pem
  2. 修改证书文件为只读

    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的更多相关文章

  1. docker ssh秘钥免密登录

    一.概述 有一台跳板机,已经实现了免密登录后端服务器.但是我写了一个django项目,它是运行在容器中的,也需要免密登录后端服务器. 虽然可以在容器中手动做一下免密登录,但是容器重启之后,之前做的设置 ...

  2. Alipay秘钥问题

    有三种秘钥一个是应用公钥 一个是支付宝公钥 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Monaco } span.s1 { text-d ...

  3. ZeroMQ接口函数之 :zmq_z85_encode – 使用Z85算法对一个二进制秘钥进行加密,输出可打印的文本

    ZeroMQ 官方地址 :http://api.zeromq.org/4-0:zmq-z85-encode zmq_z85_encode(3)          ØMQ Manual - ØMQ/4. ...

  4. sshd 指定端口,指定秘钥文件

     scp -i ~/test -P22219 SRC/ root@10.2.227.76:/data/ #sshd的端口指定的是22219,  -i 指定秘钥文件   指定秘钥文件需要注意的是,需要提 ...

  5. 将ubuntu的id_rsa秘钥转为putty的ppk格式

    1.使用putty的puttygen.exe: 2.导入需要转换的秘钥 3.保存私钥

  6. 生成秘钥文件 sn.exe(Strong Name Tool)

    Visual Studio 内置 Strong Name Tool, 我们直接运行"VS开发人员命令提示"就可以生成秘钥文件. 秘钥文件包含公钥和私钥. 来看这个例子: 在文件夹下 ...

  7. Hadoop.2.x_无秘钥设置

    1.在实际生产环境中为Hadoop配置无秘钥登录非常有必要 # 在没有配置时: [liuwl@linux-66-64 hadoop-2.5.0]$ jps 26163 Jps [liuwl@linux ...

  8. 一台电脑存放多个git账户的多个rsa秘钥

    未命名.html div.oembedall-githubrepos{border:1px solid #DDD;border-radius:4px;list-style-type:none;marg ...

  9. java加密算法--MD5加密和哈希散列带秘钥加密算法源码

    package com.ompa.common.utils; import java.security.MessageDigest; import java.security.NoSuchAlgori ...

随机推荐

  1. 基于CarbonData的电信时空大数据探索

    摘要:作为IOT最底层的无线通信网络生成大量与位置相关的数据,用于无线通信网络规划和优化,帮助电信运营商建设更好体验的精品网络,构建万物互联的信息社会. 本文分享自华为云社区<基于CarbonD ...

  2. 雇工模式(Employee Pattern)

    本文节选自<设计模式就该这样学> 1 雇工模式的定义 雇工模式(Employee Pattern)也叫作仆人模式(Servant Pattern),属于行为型设计模式,它为一组类提供通用的 ...

  3. 微信小程序中途加入云开发之坑

    一开始未使用云开发的小程序项目,之后想使用云开发能力时,要先删除对应在开发者工具中的项目(先压缩备份源码!),再用开发者工具重新创建,很多时候都需要用这种方式进行处理

  4. jmeter中执行kafka topic指令

    前置条件 kafka版本:2.2.1 jmeter版本:5.3 插件:ApacheJMeter_ssh-1.2.0.jar 1.拷贝 ApacheJMeter_ssh-1.2.0.jar 到/lib/ ...

  5. Codeforces 571E - Geometric Progressions(数论+阿巴细节题)

    Codeforces 题目传送门 & 洛谷题目传送门 u1s1 感觉此题思维难度不太大,不过大概是细节多得到了精神污染的地步所以才放到 D1E 的罢((( 首先我们对所有 \(a_i,b_i\ ...

  6. Tarjan 的一些板子

    圆方树(会在两圆点间建方点): void tarjan(int u) { low[u] = dfn[u] = ++dfc, stk[++top] = u, num++; for (int v : G[ ...

  7. 走向深蓝:那些 Linshey 不会的算法

    网络流 树论: Algorithm Round-1 Round-2 Algorithm Round-1 Round-2 点分治 \(\checkmark\) 边分治 \(\checkmark\) 动态 ...

  8. SQL-增、删、改操作

    #查看表 select * from `竟企区域数据分析` #在表第一列新增名为"年月"的列alter table `竟企区域数据分析` add column 年月 varchar ...

  9. 笔记Mysql(1)

    客户端的登录命令 查看版本 查看设置(数据库的基本设置信息) 查看时间 查看链接数 查看超时的关键字 创建数据库 查看已有数据库 进入数据库,查询链接到的数据库 查询数据目录 创建表 查看表

  10. 【模板】Splay(伸展树)普通平衡树(数据加强版)/洛谷P6136

    题目链接 https://www.luogu.com.cn/problem/P6136 题目大意 需要写一种数据结构,来维护一些非负整数( \(int\) 范围内)的升序序列,其中需要提供以下操作: ...