Docker Remote API是一个取代远程命令行界面(rcli)的REST API。本文中,我们将使用命令行工具cURL来处理url相关操作。cURL可以发送请求、获取以及发送数据、检索信息。
GitHub项目地址:https://github.com/fafeidou/docker-demo.git
一、搭建环境
选用的是centos7,首先安装docker,高版本centos7,需要tls配置,参考:https://www.jianshu.com/p/9e513f57853b,,就是用配置Docker Remote API,这个步骤是关键,先要关闭docker容器,编辑文件 /usr/lib/systemd/system/docker.service 修改一行:ExecStart=/usr/bin/dockerd --tlsverify --tlscacert=/ssl/ca.pem --tlscert=/ssl/server-cert.pem --tlskey=/ssl/server-key.pem -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 保存文件。
让配置生效:
systemctl daemon-reload
重启docker:
systemctl restart docker.service
二、接下来就是就是展示代码了
A,Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建,如下就是项目创建的:
FROM frolvlad/alpine-oraclejdk8
VOLUME /tmp
ADD test-jdbc-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
B,修改pom打包方式
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerHost>https://192.168.32.111:2375</dockerHost>
<dockerCertPath>c:\ssl</dockerCertPath>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
C,可以直接在IDEA上运行命令 (前提要运行docker)
package docker:build
D , 在docker中输入 docker images 可以看到最新的镜像,
运行 docker run -d -p 8080:8080 {imageName} (-d 后台运行,-p docker 端口映射到宿主机上的端口号)
可以查看springboot 在 docker上面运行的日志,运行命令docker logs -f tails = 100 {imageName} 即可查看应用的运行日志
读者可以将自己的镜像上传达到 dockerHub 上面,请敬请期待下篇博客。