1:在linux中搭建docker并正常启动
2:修改docker配置文件
#打开docker配置文件
vim /usr/lib/systemd/system/docker.service
#找到ExecStart栏并在后添加 -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
#保存退出,这一步是将docker映射到虚拟机2375端口
3:重新加载配置文件
#重新加载配置文件
systemctl daemon-reload
#重启docker
systemctl restart docker
#检验是否配置成功
netstat -na|grep 2375 或者 netstat -anp|grep 2375
会出现:(说明配置成功了)
若idea连不上docker,但是能相互ping通,可能是防火墙的原因
#禁用firewalld服务
systemctl disable firewalld
systemctl stop firewalld
#重启docker
systemctl restart docker
4:idea中安装docker插件(直接在插件中搜索docker安装即可)
5:配置docker插件
file–>setting–>Build,Execution,Deployment–>docker
6:配置dockerFile文件
在src/main下面建一个docker文件夹 -> 里面建一个 Dockfile 文件
FROM java:8
EXPOSE 90
VOLUME /tmp
ADD shop-1.0-SNAPSHOT.jar app.jar
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone
RUN bash -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
7:在pom中添加docker插件
#属性值
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<docker.image.prefix>com.demo</docker.image.prefix>
</properties>
#插件
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<configuration>
<tasks>
<copy todir="src/main/docker" file="target/${project.artifactId}-${project.version}.${project.packaging}"></copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
8:配置镜像
9:运行
10:以后的每次改动代码就只需pageage后run这个镜像就可以了