1、环境准备
1.1 开放Docker Remote API
linux安装docker后,开放Docker Remote API
# 编辑docker服务
vi /usr/lib/systemd/system/docker.service
# 修改ExecStart项为:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
像下面这样就可以保存了。
重启docker服务
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# ps -ef |grep docker
root 1407 1 1 21:59 ? 00:00:07 /usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
...
看到这样就OK了。
1.2 idea插件市场安装docker插件
1.3 idea中配置一个docker连接
配置完成以后我们就可以看到我们的docker连接
2、Springboot示例打包镜像快速run
2.1 调整项目的pom文件
新增两个属性
<properties>
<!--docker镜像的前缀-->
<docker.image.prefix>demo</docker.image.prefix>
<!--docker镜像的tag-->
<docker-maven-plugin.imageTag>5.9.0</docker-maven-plugin.imageTag>
</properties>
添加插件docker-maven-plugin
<build>
<plugins>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!--远程Docker的地址-->
<dockerHost>http://192.168.200.168:2375</dockerHost>
<!--镜像名称,前缀/项目名-->
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<forceTags>true</forceTags>
<!-- <rm>true</rm> -->
<!-- <useGitCommitId>true</useGitCommitId> -->
<imageTags>
<imageTag>${docker-maven-plugin.imageTag}</imageTag>
</imageTags>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
2.2 添加dockerfile文件
上面的dockerDirectory标签指定了dockerfile所在位置,也可以按此格式指定其他地方。
Dockerfile内容
# 基础镜像
#FROM java:17
FROM openjdk:17.0.2
# 维护者
MAINTAINER andychyi@139.com
# 设置时区
ENV TZ=Asia/Shanghai
# 传递 SpringBoot 启动参数 和 JVM参数
ENV PARAMS=""
ENV JVMOPTIONS=""
# 将应用 jar 包拷入 docker
ADD *.jar /root/app/server.jar
# 暴露端口
EXPOSE 12201
# 启动应用
ENTRYPOINT ["sh","-c","java $JVMOPTIONS -jar /root/app/server.jar $PARAMS"]
2.3 打包镜像
最终日志如下既是打包完成
镜像详细
跑一个镜像
至此运行完成