一、docker设置:
1、安装:
curl -fsSL https://get.docker.com | bash -s docker --mirror aliyun
2、开放远程连接端口:
(1)打开文件:vi /usr/lib/systemd/system/docker.service
(2)按i增加:-H tcp://0.0.0.0:2375
(3)重启docker:
systemctl daemon-reload
systemctl start docker
3、idea配置docker:显示连接成功即可。
二、准备springboot工程:
-
工程代码:省略。
-
编写dockerfile文件:
dockerfile具体内容:FROM java:8 VOLUME /tmp ADD *.jar nethome.jar EXPOSE 19080 ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/nethome.jar" ] ENV JAVA_HOME=/jdk8 ENV PATH=$JAVA_HOME/bin:$PATH ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
-
pom文件增加:
(1)插件增加:<!--使用docker-maven-plugin插件--> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</version> <!--将插件绑定在某个phase执行--> <executions> <execution> <id>build-image</id> <!--将插件绑定在package这个phase上。也就是说, 用户只需执行mvn package ,就会自动执行mvn docker:build--> <phase>package</phase> <goals> <goal>build</goal> </goals> </execution> </executions> <configuration> <!--指定生成的镜像名,这里是我们的项目名--> <imageName>${project.artifactId}</imageName> <!--指定标签 这里指定的是镜像的版本,我们默认版本是latest--> <imageTags> <imageTag>latest</imageTag> </imageTags> <!-- 指定我们项目中Dockerfile文件的路径--> <dockerDirectory>${project.basedir}/src/main/resources</dockerDirectory> <!--指定远程docker 地址--> <dockerHost>http://ip地址:2375</dockerHost> <!-- 这里是复制 jar 包到 docker 容器指定目录配置 --> <resources> <resource> <targetPath>/</targetPath> <!--jar包所在的路径 此处配置的即对应项目中target目录--> <directory>${project.build.directory}</directory> <!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 --> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin>
(2)资源包含:
<resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.yaml</include> <include>**/*.xml</include> <include>**/*.properties</include> </includes> <filtering>false</filtering> </resource>
三、创建镜像,创建容器:
-
创建镜像:
点击Maven的package即可打包成镜像上传至服务器,但前提是你已经连接上了服务器的docker。
-
创建容器:配置容器创建信息,这里需要注意,绑定的主机ip问题。如果是127.0.0.1,启动的工程只能在内网里访问,如果是0.0.0.0,启动的工程则内外网都可访问。
四、服务器开放端口,启动镜像即可访问:
五、补充:
可在配置docker容器添加如下配置,这样当docker运行前,都会重新进行打包: