更新配置信息(这样就不需要重启防火墙了)
firewall-cmd --reload
查看服务器开放端口
netstat -tlun
项目层面配置
项目pom文件引入插件
添加maven-compiler-plugin插件如下
<build>
<!-- install后的jar包名称 -->
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.2</version>
<configuration>
<!-- 镜像名称,相当于执行docker build -t 命令后面跟的镜像名称 -->
<imageName>shr/${project.artifactId}</imageName>
<!-- Dockerfile文件存放目录 -->
<dockerDirectory>src/main/docker</dockerDirectory>
<!-- docker远程服务器地址 -->
<dockerHost>http://192.168.68.68:2375</dockerHost>
<!--指定pem证书文件路径地址 -->
<dockerCertPath>${project.basedir}docker-pem</dockerCertPath>
<!-- 指定tag版本 -->
<!--<imageTags>
<imageTag>1.0</imageTag>
</imageTags>-->
<!-- build 时强制覆盖 tag,配合 imageTags 使用-->
<!--<forceTags>true</forceTags>-->
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
<executions>
<!-- 执行mvn install时,执行 build、tag 操作-->
<execution>
<id>build-image</id>
<phase>install</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
<!-- tag 用于给镜像打标签-->
<!--<execution>
<id>tag-image</id>
<phase>package</phase>
<goals>
<goal>tag</goal>
</goals>
<configuration>
<image>${project.artifactId}:latest</image>
<newName>${project.artifactId}:${project.version}</newName>
</configuration>
</execution>-->
<!-- maven执行deploy时push镜像 -->
<!--<execution>
<id>push-image</id>
<phase>deploy</phase>
<goals>
<goal>push</goal>
</goals>
<configuration>
<imageName>${project.artifactId}:${project.version}</imageName>
</configuration>
</execution>-->
</executions>
</plugin>
</plugins>
</build>
比较重要的参数含义如下
dockerHost: docker所在的服务器地址
dockerDirectory: dockerFile文件路径,也就是下面所要说的
dockerCertPath: 安全证书路径,这是为了安全的, 非必须,如果需要自行查找资料
编写Dockerfile文件
文件如下,如有需要再自行进行修改
FROM frolvlad/alpine-java:jdk8-slim
MAINTAINER zxc
ADD ./lib/local_policy.jar /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/local_policy.jar
ADD ./lib/US_export_policy.jar /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/US_export_policy.jar
ADD ./target/yourproject.jar /web.jar
VOLUME /logs
EXPOSE 8805/tcp
ENTRYPOINT ["sh","-c","java -Dfile.encoding=UTF8 -Duser.timezone=GMT+8 -jar /web.jar"]
其中比较重要的参数含义如下
ADD ./target/yourproject.jar /web.jar: 就是把maven的项目添加到根目录,并改名为 web
VOLUME /logs : 日志文件挂载
EXPOSE 8805/tcp 暴露的端口, 对外访问的,一般跟项目端口一样即可
执行install
就是常规的maven install指令, mvn install, 然后去docker所在服务器执行如下指令
docker images 就能看到你的项目在上面了