1. 设置服务器Docker支持远程访问
1.1 编辑此文件:
army@studyserver:~$ vim /lib/systemd/system/docker.service

1.2 重新加载配并重启docker
systemctl daemon-reload service docker restart
现在设置完毕了;
2. IDEA开发工具安装Docker插件,并配置远程服务器IP
2.1 Idea 安装docker Integration 插件

2.2 在Idea中创建docker打包环境

2.3 连接远程docker容器。 第二步操作完成后,在idea下方会有个docker的窗口

3. SpringBoot编写Dockerfile和打包配置
3.1 以下是Dockerfile内容:
# 指定基础镜像(必需且为第一条指令,scratch是空白镜像) FROM 192.168.3.16:5000/openjdk:latest # MAINTAINER已经过期,具体参考:https://docs.docker.com/engine/reference/builder/#label LABEL author-name="army.qin@easterphoenix.com" # 为了防止运行时用户忘记将动态文件所保存目录挂载为卷,在 Dockerfile 中,我们可以事先指定某些目录挂载为匿名卷, # 这样在运行时如果用户不指定挂载,其应用也可以正常运行,不会向容器存储层写入大量数据。 VOLUME /tmp # 在 COPY 和 ADD 指令中选择的时候,可以遵循这样的原则, # 所有文件复制使用 COPY 指令,仅在需要自动解压缩的场合使用 ADD 指令 ADD target/docker-study.jar app.jar #bash方式执行,使demo-1.0.0.jar可访问 #RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。 #RUN bash -c "touch /docker-study.jar" # EXPOSE 指令仅仅是声明的是运行时容器提供服务的端口 # 用于帮助镜像使用者理解这个镜像服务的守护端口,以方便配置映射; #EXPOSE 8080 # JVM参数可选 #CMD ["java","-jar","-Xms64m","-Xmx64m","/docker-study.jar"] #ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
3.2 以下是pom.xml打包配置文件:
<properties>
<java.version>1.8</java.version>
<docker.repostory>192.168.3.16</docker.repostory>
</properties>
<build>
<!-- 最终Maven本地打包出来的jar包名称 -->
<finalName>${project.artifactId}</finalName>
<!--<defaultGoal>package</defaultGoal>-->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<!-- GitHub: https://github.com/spotify/docker-maven-plugin -->
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
<configuration>
<!--<serverId>server-registry</serverId>-->
<registryUrl>http://${docker.repostory}:5000</registryUrl>
<pushImage>true</pushImage>
<!-- 远程镜像名称 -->
<imageName>${docker.repostory}:5000/${project.artifactId}:${project.version}</imageName>
<forceTags>true</forceTags>
<imageTags>
<imageTag>${project.version}</imageTag>
<imageTag>latest</imageTag>
</imageTags>
<dockerHost>http://${docker.repostory}:22375</dockerHost>
<dockerDirectory>${project.basedir}</dockerDirectory>
<resources>
<resource>
<targetPath>/target</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</build>
4. IDEA命令行执行以下,自动打包并上传到远程服务器启动。
mvn clean package -Dmaven.test.skip=true
查看服务器镜像 docker images
查看正在运行镜像 docker ps -a