docker-java的使用
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的使用的更多相关文章
- Docker Java程序镜像制作
Docker Java程序镜像制作 制作前的准备 jre:不需要完整的jdk,jre即可,到Oracle进行下载即可,下载链接,根据自己的情况进行选择,这里选择jre-8u221-linux-x64. ...
- Docker Java 例子
版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...
- Docker Java应用日志时间和容器时间不一致
1.在docker容器和系统时间不一致是因为docker容器的原生时区为0时区,而国内系统为东八区. 2.还有容器中运行的java应用打出的日志时间和通过date -R方式获取的容器标准时间有八个小时 ...
- Docker Java+Tomcat 环境搭建
软件环境:jdk.tomcat.docker.centos.虚拟机 首先,您要准备一个 CentOS 的操作系统,虚拟机也行.总之,可以通过 Linux 客户端工具访问到 CentOS 操作系统就行. ...
- docker java环境 直接做成镜像 跑自己的java包
yum install docker #基于阿里源 可以直接下载 systemctl restart docker ifconfig #出现 docker0 说明环境部署成功 docker ver ...
- 云服务器配置 docker java mysql mongodb redis nginx 环境
磁盘挂载 fdisk -l #查看磁盘列表 mkfs.ext4 /dev/vdb #格式化磁盘 mount /dev/vdb /data #挂载磁盘在/data echo '/dev/vdb /dat ...
- Docker&Java&Mysql&Python3&Supervisor&Elasticsearch安装
目录 docker 安装java 安装mysql 安装Mysql8 安装python3 安装supervisor 安装ElasticSearch 打包images docker yum install ...
- spark docker java kubernetes 获取cpu内核/线程数问题
升级服务从spark2.3.0-hadoop2.8 至 spark2.4.0 hadoop3.0 一日后导致spark streaming kafka消费数据积压 服务不是传统的部署在yarn上,而是 ...
- Docker Java 镜像基础(四)
基于官方提供的centos 7.2.1511 基础镜像构建JDK 和tomcat 镜像,先构建JDK镜像,然后在基于JDK镜像构建tomcat镜像 构建 centos:latest 基础镜像: # 下 ...
- Docker JDK镜像
Docker jdk镜像 说明 使用alpine-glibc作为基础镜像 JAVA JDK/JRE以1.8为基准 下载文件 1.下载JDK/JRE压缩包. jre-8u201-linux-x64.ta ...
随机推荐
- 《精通Spring4.X企业应用开发实战》读后感第四章(BeanFactory和ApllicationContext)
- CodeForces 489C Given Length and Sum of Digits... (dfs)
C. Given Length and Sum of Digits... time limit per test 1 second memory limit per test 256 megabyte ...
- python脚本修改hosts文件
用python3写了个修改hosts的小脚本,没有技术含量,顺带复习一下文件操作和os.sys模块的内容了. # -*- coding:utf-8 -*- #!/usr/bin/env python ...
- Javascript中对文字编码的三个函数
JavaScript中对文字编码主要有3个函数 escape,encodeURI, encodeURIComponent 相应3个解码函数 unescape, decodeURI, decodeURI ...
- zoj2901【DP·二进制优化】
题意: 要排一个L长度的序列,当 j 放在 i 后面的时候会增加v[ i ][ j ]的值,求构成L长度序列的最大值. 思路: 可以想到预处理任意两点<i,j>的最大值是多少,然后题目还有 ...
- Unity 自动寻路Navmesh之跳跃,攀爬,斜坡
在之前的几篇Blog总,我们已经系统学习了自动寻路插件Navmesh的相关概念和细节.然而,如果要做一个场景精美的手游,需要用到各种复杂的场景地形,而不仅仅是平地上的自动寻路.今天我们将通过一个完整的 ...
- uoj#340. 【清华集训2017】小 Y 和恐怖的奴隶主(矩阵加速)
传送门 uoj上的数据太毒了--也可能是我人傻常数大的缘故-- 三种血量的奴隶主加起来不超过\(8\)个,可以枚举每种血量的奴隶主个数,那么总的状态数只有\(165\)种,设\(dp_{t,i,j,k ...
- Linux命令 查看Linux版本和是否联网
1.查看Linux内核版本 1.1 $ cat /proc/version [heima01@heima01 ~]$ cat /proc/version Linux version 2.6.32-57 ...
- shell学习(10)- if的使用
在写Linux脚本的时候,经常会用到判断,这篇主要讲if的具体使用. if用法: if [ ] ;then command elif [ ] ;then command else command fi ...
- CC36:平分的直线
题目 在二维平面上,有两个正方形,请找出一条直线,能够将这两个正方形对半分.假定正方形的上下两条边与x轴平行. 给定两个vecotrA和B,分别为两个正方形的四个顶点.请返回一个vector,代表所求 ...