springboot(9)--docker部署springboot應用
阿新 • • 發佈:2018-12-17
docker:應用容器引擎,使用者在客戶端可以將應用和應用的執行環境、依賴包等打包成映象,上傳到映象倉庫,然後在伺服器拉取映象並執行。不同映象之間的依賴互不影響,且映象的執行效率很高。
0.拉取jdk8映象
這個待會用作基映象。
docker pull openjdk:8-jdk-alpine
1.開啟Docker服務的遠端訪問許可權
由於我們是從客戶端使用MAVEN外掛將生成的映象直接推送到映象倉庫上,然後要在遠端Docker伺服器上拉取映象,所以要開啟遠端Docker服務的遠端訪問許可權。
i>修改/etc/docker/daemon.json檔案,新增Docker的遠端訪問埠及守護程序
{
"hosts":["tcp://0.0.0.0:2375","unix:///var/run/docker.sock"]
}
ii>重新載入配置檔案,並重啟docker服務
systemctl daemon-reload
systemctl restart docker
iii>測試服務是否開啟
curl 127.0.0.1:2375/info
2.在客戶端建立映象,並上傳到映象倉庫
i>建立專案
目錄結構如圖:
ii>引入Docker打包外掛的依賴
<build> <plugins> <!-- springboot打包 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.9</version> <configuration> <!-- 映象名稱 --> <imageName>lqdev.cn/demo</imageName> <!-- docker遠端伺服器地址 --> <dockerHost>http://伺服器IP:2375</dockerHost> <!-- Dockerfile檔案存放目錄 --> <dockerDirectory>src/main/docker</dockerDirectory> <resources> <resource> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
iii>編寫Dockerfile檔案
#引入基映象
FROM openjdk:8-jdk-alpine
#將資料持久化到指定目錄
VOLUME /opt/tmp
#將應用jar包新增到映象上
ADD chapter-14-0.0.1-SNAPSHOT.jar app.jar
#開啟應用服務埠
EXPOSE 8080
iv>編譯、上傳、在遠端Docker伺服器拉取映象
mvn clean package docker:build -Dmaven.test.skip=true
3.在遠端伺服器檢視映象
docker images
4.在遠端伺服器執行映象
docker run -d -p 8080:8080 lqdev.cn/my-springboot-images
5.測試映象是否執行成功
http:伺服器地址:8080/