Docker 釋出springboot 專案
阿新 • • 發佈:2019-01-22
1)Spring Boot 專案新增 Docker 支援
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- Docker maven plugin --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.0.0</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> </configuration> </plugin> <!-- Docker maven plugin --> </plugins> </build>
2) 新增 jdk , maven 環境變數。
3)安裝 Docker 環境
a)安裝
yum install docker
b)安裝完成後,使用下面的命令來啟動 docker 服務,並將其設定為開機啟動
service docker start
chkconfig docker on
#LCTT 譯註:此處採用了舊式的 sysv 語法,如採用CentOS 7中支援的新式 systemd 語法,如下:
systemctl start docker.service
systemctl enable docker.service
c)使用Docker 中國加速器
vi /etc/docker/daemon.json
#新增後:
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"live-restore": true
}
d)重新啟動docker
systemctl restart docker
輸入docker version
返回版本資訊則安裝正常。
4) 使用 Docker 部署 Spring Boot 專案
將專案 spring-boot-docker
拷貝伺服器中,進入專案路徑下進行打包測試。
#打包 mvn package #啟動 java -jar target/demo-spring-boot-1.0.jar
建立 Dockerfile 檔案,並將*.jar 檔案放在同一個資料夾下(最好單獨放一起)。例如:
# 基礎映象使用Java
FROM java:8
# 作者
MAINTAINER lr
# VOLUME 指定了臨時檔案目錄為/tmp。
# 其效果是在主機 /var/lib/docker 目錄下建立了一個臨時檔案,並連結到容器的/tmp
VOLUME /tmp
# 將jar包新增到容器中並更名為app.jar
ADD demo-0.0.1-SNAPSHOT.jar app.jar
# 執行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
# 指定容器需要對映到主機的埠
EXPOSE 8080
執行映象構建命令
**docker image build -t demo-springboot . // 映象名隨意,注意最後有一個點**
檢視docker 構建的映象中是否存在demo-springboot
docker images
執行映象
docker run -p8080:8089 -d demo-springboot
其中: 1) -p外部埠號:內部埠號
2) -d 後臺執行