第一步:服务搭建docker环境
1、docker安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun #一键安装脚本
systemctl enable docker.service #设置docker开机启动
systemctl restart docker.service #启动docker服务
2、开启docker远程访问端口
编辑/usr/lib/systemd/system/docker.service文件添加-H tcp://0.0.0.0:12375 -H unix://var/run/docker.sock 如下图:
保存文件后重新加载配置然后重新启动
systemctl daemon-reload # 重新加载配置
systemctl restart docker.service # 重启docker服务
3、开放端口
在云服务器防火墙管理端后台放开12375端口。
4、测试
curl http://127.0.0.1:2375/info
如果出现 以下信息则说明配置成功
第二步:创建一个测试项目
只写了一个测试接口
第三步:idea安装docker插件
高版本的idea会自带,如果没有直接下载安装,然后重启idea
配置docker插件,换成自己的服务器地址和端口号即可。
连接成功
第三步:pom文件中加入docker插件依赖
<!--docker-maven-plugin插件打包-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<!--镜像名称-->
<imageName>${project.artifactId}</imageName>
<!--指定标签-->
<imageTags>
<imageTag>latest</imageTag>
</imageTags>
<!--基础镜像jdk1.8-->
<baseImage>java</baseImage>
<!--制作者提供本人信息-->
<maintainer>617594538@qq.com</maintainer>
<!--切换到Root目录-->
<workdir>/ROOT</workdir>
<cmd>["java", "-version"]</cmd>
<entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>
<!--指定DockerFile路径-->
<!--<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>-->
<!--指定远程docker api地址-->
<dockerHost>http://120.53.247.15:12375</dockerHost>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/ROOT</targetPath>
<!--用于指定需要复制的根目录-->
<directory>${project.build.directory}</directory>
<!--用于指定需要复制的jar文件-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
第四步:打包
更新maven依赖后(clean、install)
执行docker打包指令 mvn docker:build
打包成功
在这可以看到打包成功的docker镜像
在服务器中执行 docker images 可以查看所有的镜像
第五步:运行
在服务器中运行镜像
# 使用docker镜像test:latest以后台模式启动一个容器,并将容器命名为test。绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 8080 端口上。
docker run --name test -p 8080:8080 test:latest
访问接口成功,部署完成
第七步:将镜像打成压缩包
# 将test:latest镜像导出为test.tar.gz压缩包
docker save test:latest | gzip > test.tar.gz
压缩包在根目录下
第八步:将docker镜像的压缩包导入
gunzip -c test.tar.gz | docker load
导入后 docker images 查看镜像即可。