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. [nowcoder5667K]Keyboard Free

    不妨设$r1\le r2\le r3$,令$f(\alpha)=E(S_{\Delta}ABC)$,其中AB坐标分别为$(r_{1},0)$和$(r_{2}\cos \alpha,r_{2}\sin ...

  2. 入门JavaScript正则表达式

    概念 regular expression,描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. 正则表达式的创建 ...

  3. springboot增加多端口管理

    目标是这样的: 方法 方法还是比较简单的1.点击菜单栏:Views -> Tool Windows -> Services:中文对应:视图 -> 工具窗口 -> 服务:快捷键是 ...

  4. Java 代码审计 — 1. ClassLoader

    参考: https://www.bilibili.com/video/BV1go4y197cL/ https://www.baeldung.com/java-classloaders https:// ...

  5. 简单聊下.NET6 Minimal API的使用方式

    前言 随着.Net6的发布,微软也改进了对之前ASP.NET Core构建方式,使用了新的Minimal API模式.之前默认的方式是需要在Startup中注册IOC和中间件相关,但是在Minimal ...

  6. Atcoder Grand Contest 001E - BBQ Hard(组合意义转化,思维题)

    Atcoder 题面传送门 & 洛谷题面传送门 Yet another 思维题-- 注意到此题 \(n\) 数据范围很大,但是 \(a_i,b_i\) 数据范围很小,这能给我们什么启发呢? 观 ...

  7. Bedtools genomecov 计算覆盖度

    简单说明: 从2.28.0版开始,bedtools使用htslib库支持CRAM格式 除了BAM文件,bedtools默认所有的输入文件都以TAB键分割 除非使用-sorted选项,bedtools默 ...

  8. os.path.join()函数

    连接两个或更多的路径名组件 import os p1 = '/date' p2 = 'mage' p3 = 'img' all = os.path.join(p1,p2,p3) print(all) ...

  9. KEGG数据库整理示例

    已知KEGG数据库中ko_map.tab文件,K-->ko: 目标文件:map-->K 代码示例: #! /usr/bin/perl -w use strict; my %seq; ope ...

  10. ggplot2 图例及分页参数

    图例: 1 theme(legend.title =element_blank()) 2 guides(fill = guide_legend(title = NULL)) # 去掉图例title 3 ...