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. Spark SQL知识点与实战

    Spark SQL概述 1.什么是Spark SQL Spark SQL是Spark用于结构化数据(structured data)处理的Spark模块. 与基本的Spark RDD API不同,Sp ...

  2. 基于nexus私服配置项目pom.xml和maven settings.xml文件

    备注:搭建nexus私服请参考上一篇文章基于Docker搭建Maven私服Nexus,Nexus详解 一:将jar发送到nexus私服务器 1.pom.xml文件添加配置 pom.xml文件中的这个版 ...

  3. Devs--开源规则引擎介绍

    Devs Devs是一款轻量级的规则引擎. 开源地址:https://github.com/CrankZ/devs 基础概念 此规则引擎的基础概念有字段.条件.规则等. 其中字段组成条件,条件组成规则 ...

  4. 全面了解一致性哈希算法及PHP代码实现

    在设计一个分布式系统的架构时,为了提高系统的负载能力,需要把不同的数据分发到不同的服务节点上.因此这里就需要一种分发的机制,其实就是一种算法,来实现这种功能.这里我们就用到了Consistent Ha ...

  5. Codeforces 718E - Matvey's Birthday(思维题)

    Codeforces 题面传送门 & 洛谷题面传送门 首先注意到这个图的特殊性:我们对于所有 \(s_i=s_j\)​ 的 \((i,j)\)​ 之间都连了条边,而字符集大小顶多只有 \(8\ ...

  6. Git常用操作(二)

    仓库拉取 git clone XXX 修改仓库链接 $ git config -l # 显示coding列表 $ git config --get remote.origin.url # 返回orig ...

  7. 全基因组选择育种(GS)简介

    全基因组选择(Genomic selection, GS)是一种利用覆盖全基因组的高密度标记进行选择育种的新方法,可通过早期选择缩短世代间隔,提高育种值(Genomic Estimated Breed ...

  8. Nginx编译参数详细介绍

    /configure --help --help 显示本提示信息 --prefix=PATH 设定安装目录 --sbin-path=PATH 设定程序文件目录 --conf-path=PATH 设定配 ...

  9. vi查找替换命令详解 (转载)

    转载至:   http://blog.csdn.net/lanxinju/article/details/5731843 一.查找 查找命令 /pattern<Enter> :向下查找pa ...

  10. Oracle中的DBMS_LOCK包的使用

    一.DBMS_LOCK相关知识介绍 锁模式: 名字 描述 数据类型 值 nl_mode Null INTEGER 1 ss_mode Sub Shared: used on an aggregate ...