1. docker java 的api需要证书的认证

在/home/hett文件下创建certs证书

生成服务器私钥,命令如下:

$openssl genrsa -out server-key.pem 4096

再用私钥生成服务器公钥请求文件,也就是证书,命令如下:

$openssl req -subj "/CN=192.168.99.101" -sha256 -new -key server-key.pem -out server.csr,

这里的192.168.99.101同样是Docker所在服务器的IP,你不要照抄,用自己的Docker服务器替换上去。

root@ros-OptiPlex-3050:~# cd /home/hett/certs/
root@ros-OptiPlex-3050:/home/hett/certs# ll
total 24
drwxr-xr-x  2 root root 4096 9月   3 11:14 ./
drwxr-xr-x 18 hett hett 4096 9月  13 10:51 ../
-rw-r--r--  1 root root 3326 9月   3 11:10 ca-key.pem
-rw-r--r--  1 root root 2090 9月   3 11:11 ca.pem
-rw-r--r--  1 root root 1590 9月   3 11:14 server.csr
-rw-r--r--  1 root root 3243 9月   3 11:14 server-key.pem
root@ros-OptiPlex-3050:/home/hett/certs# openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnferror loading the config file 'extfile.cnf'
root@ros-OptiPlex-3050:/home/hett/certs# ll
total 24
drwxr-xr-x  2 root root 4096 9月   3 11:14 ./
drwxr-xr-x 18 hett hett 4096 9月  13 10:51 ../
-rw-r--r--  1 root root 3326 9月   3 11:10 ca-key.pem
-rw-r--r--  1 root root 2090 9月   3 11:11 ca.pem
-rw-r--r--  1 root root 1590 9月   3 11:14 server.csr
-rw-r--r--  1 root root 3243 9月   3 11:14 server-key.pem
root@ros-OptiPlex-3050:/home/hett/certs# nano extfile.cnf

root@ros-OptiPlex-3050:/home/hett/certs# cat extfile.cnf
 subjectAltName = DNS:192.168.30.74, IP: 192.168.30.71, IP: 192.168.30.39, IP:0.0.0.0, IP:127.0.0.1
添加访问的ip列表
root@ros-OptiPlex-3050:/home/hett/certs# openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf
Signature ok
subject=/CN=192.168.30.240
Getting CA Private Key
Enter pass phrase for ca-key.pem:
root@ros-OptiPlex-3050:/home/hett/certs# openssl genrsa -out key.pem 4096
Generating RSA private key, 4096 bit long modulus
..........................................................................................++
............................................................................................................................................................................................................................................................................................................++
e is 65537 (0x10001)
root@ros-OptiPlex-3050:/home/hett/certs# ll
total 40
drwxr-xr-x  2 root root 4096 9月  13 13:54 ./
drwxr-xr-x 18 hett hett 4096 9月  13 10:51 ../
-rw-r--r--  1 root root 3326 9月   3 11:10 ca-key.pem
-rw-r--r--  1 root root 2090 9月   3 11:11 ca.pem
-rw-r--r--  1 root root   17 9月  13 13:53 ca.srl
-rw-r--r--  1 root root  100 9月  13 13:53 extfile.cnf
-rw-r--r--  1 root root 3243 9月  13 13:54 key.pem
-rw-r--r--  1 root root 1907 9月  13 13:53 server-cert.pem
-rw-r--r--  1 root root 1590 9月   3 11:14 server.csr
-rw-r--r--  1 root root 3243 9月   3 11:14 server-key.pem
root@ros-OptiPlex-3050:/home/hett/certs# openssl req -subj '/CN=client' -new -key key.pem -out client.csr
root@ros-OptiPlex-3050:/home/hett/certs# openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnfSignature ok
subject=/CN=client
Getting CA Private Key
Enter pass phrase for ca-key.pem:
root@ros-OptiPlex-3050:/home/hett/certs# ll
total 48
drwxr-xr-x  2 root root 4096 9月  13 13:54 ./
drwxr-xr-x 18 hett hett 4096 9月  13 10:51 ../
-rw-r--r--  1 root root 3326 9月   3 11:10 ca-key.pem
-rw-r--r--  1 root root 2090 9月   3 11:11 ca.pem
-rw-r--r--  1 root root   17 9月  13 13:54 ca.srl
-rw-r--r--  1 root root 1895 9月  13 13:54 cert.pem
-rw-r--r--  1 root root 1582 9月  13 13:54 client.csr
-rw-r--r--  1 root root  100 9月  13 13:53 extfile.cnf
-rw-r--r--  1 root root 3243 9月  13 13:54 key.pem
-rw-r--r--  1 root root 1907 9月  13 13:53 server-cert.pem
-rw-r--r--  1 root root 1590 9月   3 11:14 server.csr
-rw-r--r--  1 root root 3243 9月   3 11:14 server-key.pem
root@ros-OptiPlex-3050:/home/hett/certs#

重启

root@ros-OptiPlex-3050:/home/hett/certs# systemctl daemon-reload
root@ros-OptiPlex-3050:/home/hett/certs# service docker restart
root@ros-OptiPlex-3050:/home/hett/certs#

配置证书完成

2. 通过api调用

项目中添加<!-- https://mvnrepository.com/artifact/com.github.docker-java/docker-java -->
<dependency>
<groupId>com.github.docker-java</groupId>
<artifactId>docker-java</artifactId>
<version>3.0.14</version>
</dependency>

public class DockerUtil {
/**
* docker的客户端
*/
private static DockerClient dockerClient; public static void main(String[] args) {
DockerClientConfig config = DefaultDockerClientConfig.createDefaultConfigBuilder().withDockerTlsVerify(true).
withDockerCertPath("F:/cert").withDockerHost("tcp://192.168.30.240").withDockerConfig("F:/cert").
withApiVersion("3.0.14").withRegistryEmail("1771084007@qq.com").withRegistryPassword("hett").
withRegistryUsername("hett").build();
dockerClient = DockerClientBuilder.getInstance(config).build();
List<Container> containers = dockerClient.listContainersCmd().exec();//获取创建的容器
//通过for循环实现
for (Container container: containers){ } }

docker-java的使用的更多相关文章

  1. Docker Java程序镜像制作

    Docker Java程序镜像制作 制作前的准备 jre:不需要完整的jdk,jre即可,到Oracle进行下载即可,下载链接,根据自己的情况进行选择,这里选择jre-8u221-linux-x64. ...

  2. Docker Java 例子

    版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...

  3. Docker Java应用日志时间和容器时间不一致

    1.在docker容器和系统时间不一致是因为docker容器的原生时区为0时区,而国内系统为东八区. 2.还有容器中运行的java应用打出的日志时间和通过date -R方式获取的容器标准时间有八个小时 ...

  4. Docker Java+Tomcat 环境搭建

    软件环境:jdk.tomcat.docker.centos.虚拟机 首先,您要准备一个 CentOS 的操作系统,虚拟机也行.总之,可以通过 Linux 客户端工具访问到 CentOS 操作系统就行. ...

  5. docker java环境 直接做成镜像 跑自己的java包

    yum install docker #基于阿里源 可以直接下载 systemctl restart docker ifconfig  #出现 docker0  说明环境部署成功 docker ver ...

  6. 云服务器配置 docker java mysql mongodb redis nginx 环境

    磁盘挂载 fdisk -l #查看磁盘列表 mkfs.ext4 /dev/vdb #格式化磁盘 mount /dev/vdb /data #挂载磁盘在/data echo '/dev/vdb /dat ...

  7. Docker&Java&Mysql&Python3&Supervisor&Elasticsearch安装

    目录 docker 安装java 安装mysql 安装Mysql8 安装python3 安装supervisor 安装ElasticSearch 打包images docker yum install ...

  8. spark docker java kubernetes 获取cpu内核/线程数问题

    升级服务从spark2.3.0-hadoop2.8 至 spark2.4.0 hadoop3.0 一日后导致spark streaming kafka消费数据积压 服务不是传统的部署在yarn上,而是 ...

  9. Docker Java 镜像基础(四)

    基于官方提供的centos 7.2.1511 基础镜像构建JDK 和tomcat 镜像,先构建JDK镜像,然后在基于JDK镜像构建tomcat镜像 构建 centos:latest 基础镜像: # 下 ...

  10. Docker JDK镜像

    Docker jdk镜像 说明 使用alpine-glibc作为基础镜像 JAVA JDK/JRE以1.8为基准 下载文件 1.下载JDK/JRE压缩包. jre-8u201-linux-x64.ta ...

随机推荐

  1. 《深入分析Java Web技术内幕》读后感(servlet)

    见书第九章 P243 在Tomcat的容器等级中,Context容器直接管理Servlet在容器中的包装类Wrapper,所以Context容器如何运行将直接影响Servlet的工作方式. Servl ...

  2. 封装类似thinkphp连贯操作数据库的Db类(简单版)。

    <?php header("Content-Type:text/html;charset=utf-8"); /** *php操作mysql的工具类 */ class Db{ ...

  3. [openjudge] 1455:An Easy Problem 贪心

    描述As we known, data stored in the computers is in binary form. The problem we discuss now is about t ...

  4. SpringMVC基础配置及使用

    SpringMVC基础配置及使用 SpringMVC:1.SpringMVC和Spring的关系:    软件开发的三层架构: web层[表示层.表现层]---->Service层----> ...

  5. Solr 6.7学习笔记(08)-- Facet

    在搜索中,我们搜索时,通常会自动返回一些相关的搜索.比如,你搜索了一本书,会自动返回作者信息加上他的其它书籍的数量.这种功能在Solr中称之为Facet.不太好翻译.下面对于参数的说明,我以搜索“手机 ...

  6. Jmeter接口自动化参数化 (转自软件测试部落)

    测试场景: 有个查询城市(大概一百个 )天气预报的接口(需求参考第一课),需要根据不同的citycode,去查询对应城市的天气预报,这种接口该如何去测试呢? 分析需求: 不管是功能测试需求,还是接口测 ...

  7. 洛谷P3668 [USACO17OPEN]Modern Art 2 现代艺术2

    P3668 [USACO17OPEN]Modern Art 2 现代艺术2 题目背景 小TY的同学HF也想创作艺术 HF只有一块长条状的画布(画条),所以每一次涂色只能涂上连续几个单位的颜料,同样新的 ...

  8. uoj#213. 【UNR #1】争夺圣杯(单调栈)

    传送门 我们枚举每一个元素,用单调栈做两遍计算出它左边第一个大于它的位置\(l[i]\)和右边第一个大于它的位置\(r[i]\),那么一个区间以它为最大值就意味着这个区间的左端点在\([l[i]+1, ...

  9. 洛谷P3646 [APIO2015]巴厘岛的雕塑(数位dp)

    传送门 话说莫非所有位运算都可以用贪心解决么……太珂怕啦…… 一直把或运算看成异或算我傻逼…… 考虑从高位到低位贪心,如果能使答案第$i$位为0那么肯定比不为$0$更优 然后考虑第$i$位是否能为$0 ...

  10. 程序员收藏必看系列:深度解析MySOL优化(一)

    说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *.不使用NULL字段.合理创建索引.为字段选择合适的数据类型….. 你是否真的理解这些优化技巧?是否理解其背后的工作原理? ...