springboot打包docker鏡像部署

springboot打包docker鏡像部署

環境準備

機器 vultr一臺,centos7html

資源下載

  1. jdk8
  2. maven
  3. git yum install git
  4. docker yum install docker-io

環境搭建

jdk,maven imagejava

1.解壓資源
tar -zxvf jdk8.tar.gz
tar -zxvf apache-maven-3.3.9-bin.tar.gz

2.配置環境變量
vim /etc/profile
export JAVA_HOME=/root/jdk8
export MAVEN_HOME=/root/apache-maven-3.3.9
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
3.資源生效
source /etc/profile

項目準備(使用現有項目)

pan-search-springboot pom.xml新增docker配置git

<plugin>
	<groupId>com.spotify</groupId>
	<artifactId>docker-maven-plugin</artifactId>
	<version>0.4.3</version>
	<configuration>
	<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>
</plugin>

配置解釋

  1. imageName鏡像名稱
  2. dockerDirectory Dockerfile位置
  3. resources 指那些須要和 Dockerfile 放在一塊兒,在構建鏡像時使用的文件,通常應用 jar 包須要歸入。本例,只需一個 jar 文件 Dockerfile定義 /src/main/docker/Dockerfile
FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD docker-spring-boot-1.0.0.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

配置解釋

  1. VOLUME 指定了臨時文件目錄爲/tmp。其效果是在主機 /var/lib/docker 目錄下建立了一個臨時文件,並連接到容器的/tmp。改步驟是可選的,若是涉及到文件系統的應用就頗有必要了。/tmp目錄用來持久化到 Docker 數據文件夾,由於 Spring Boot 使用的內嵌 Tomcat 容器默認使用/tmp做爲工做目錄
  2. 項目的 jar 文件做爲 "app.jar" 添加到容器的
  3. ENTRYPOINT 執行項目 app.jar。爲了縮短 Tomcat 啓動時間,添加一個系統屬性指向 "/dev/urandom" 做爲 Entropy Source

構建dockerImage

項目根路徑下執行
mvn package docker:build

運行docker

docker run -p 8080:8080 -t kite/pan-search-springboot

打包上傳

帳號註冊

registergithub

登錄

docker login

上傳

docker push kitesweet/pan-search-springboot

拉取鏡像

docker pull kitesweet/pan-search-springboot

經常使用docker命令

查看
docker ps
docker ps -a爲查看全部的容器,包括已經中止的
刪除全部容器
docker rm $(docker ps -a -q)
刪除單個容器
docker rm <容器名orID>
中止、啓動、殺死一個容器
docker stop <容器名orID>
docker start <容器名orID>
docker kill <容器名orID>
查看全部鏡像
docker images
查看容器日誌
docker logs -f <容器名orID>

參考

  1. 經常使用docker命令,及一些坑
  2. 用 Docker 構建、運行、發佈一個 Spring Boot 應用
相關文章
相關標籤/搜索