文 | 平哥 日期 | 20201112
方式一:使用DockerFile直接創(chuàng)建自定義鏡像
基本步驟:
- 編寫Dockerfile文件
- docker build 生成鏡像
- docker run 創(chuàng)建容器運行
Step 1 將項目打成jar包并上傳
在IDEA中創(chuàng)建SpringBoot項目矫夯,里面只有一個叫做”/”的控制器方法孔庭,訪問后頁面輸出:“Success!”,用Maven進行打包成demojar.jar吸占。
提示:在pom文件中加入如下打包配置:
<build>
<finalName>demojar</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.gcp.TestDockerBuildApp</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<!--把依賴的包都打包到生成的Jar包中-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
將打包好的文件上傳至服務器的 /usr/loal/docker
目錄中。
Step 2 下載JDK的Docker鏡像
在服務器上下載JDK的docker鏡像募强,我這用的是openjdk:8版本
# docker pull openjdk:8
可以利用以下命令進行確認灼舍,本地是否有jdk鏡像:
# docker images
Step 3 創(chuàng)建構(gòu)建文件
新建一個Docke鏡像構(gòu)建文件:builFile,提示:要構(gòu)建到鏡像中的jar文件需要和buildFile處于同一個目錄一屋。
# vim /usr/local/docker/buildFile
在文件中輸入如下信息:
FROM openjdk:8
VOLUME /var/mydatas
ADD demojar.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
EXPOSE 8080
參數(shù)說明:
// 指定基礎鏡像窘疮,這個需要根據(jù)自己配置的倉庫上的版本寫
FROM openjdk:latest
// 持久化目錄,容器數(shù)據(jù)卷冀墨,用于數(shù)據(jù)保存和持久化工作
VOLUME /var/mydatas
// 指定源包闸衫,前者是你的jar包,將宿主機目錄下的文件拷貝進鏡像且ADD命令會自動處理URL和解壓tar壓縮包
ADD demojar.jar app.jar
// 指定容器啟動時執(zhí)行的命令
ENTRYPOINT ["java","-jar","/app.jar"]
// 對外端口
EXPOSE 8080
Step 4 創(chuàng)建Docker鏡像
使用如下命令進行Docker鏡像創(chuàng)建:
# docker build -f /usr/local/buildFile -t demo:1.0 .
p.s. 命令最后有個點诽嘉;
-t意思 --tag list: Name and optionally a tag in the 'name:tag' format
Step 5 啟動容器
使用如下命令進行容器創(chuàng)建并啟動:
# docker run --name demoJarRun -p 8080:8080 -d demo:1.0
啟動后蔚出,可通過日志查詢命令查看是否已啟動完畢且成功:
# docker logs -f demoJarRun
方式二:使用IDEA創(chuàng)建自定義鏡像
Step 1 修改Docker服務配置
修改如下文件:
# vim /usr/lib/systemd/system/docker.service
在ExecStart的末尾加上如下配置:
-H unix:///var/run/docker.sock -H 0.0.0.0:2375
如圖:
重新加載配置,重啟docker服務
# systemctl daemon-reload
# systemctl restart docker
Step 2 新增項目POM配置
在原有打包插件的基礎上加入如下插件信息:
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.2</version>
<configuration>
<imageName>demojar:2.0</imageName>
<baseImage>openjdk:8</baseImage>
<dockerHost>http://81.70.38.8:2375</dockerHost>
<entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
Step 3 新增IDEA運行配置
進入“Run/Debug Configurations”界面:
點擊左上角 “+” 號虫腋,新增Maven項目運行配置:
在Command line 輸入運行的命令:
clean package docker:build
單擊OK保存骄酗。
Step 4 運行并驗證是否創(chuàng)建成功
選擇上一步配置的運行項,單擊運行:
登錄遠程服務器查看是否已創(chuàng)建鏡像: