1. 程式人生 > >Spring boot轉docker&docker簡單使用和管理

Spring boot轉docker&docker簡單使用和管理

我們前面學習了使用了Spring Boot,又發現了docker是如此的適合於微服務。那我們如何把Spring boot專案打包成docker映象呢?

首先需要一個Spring boot專案。

開啟命令列視窗,進入專案目錄下,使用mvn package命令打包專案成jar包。


打包成功之後,可以在target目錄下看到我們的專案jar包。

我們通過將jar打包成docker的方式來將Spring boot專案打包成docker映象。

首先需要在作業系統中安裝docker。博主的window中並沒有docker,將jar包複製到虛擬機器中。需要先安裝好docker,這裡不談論過程了。

安裝完成之後,然後我們需要編寫一個Dockerfile檔案:

Spring Boot官網推薦:

# 基礎映象
FROM frolvlad/alpine-oraclejdk8:slim

# VOLUME命令用於讓你的容器訪問宿主機上的目錄。
VOLUME /tmp

# ADD命令有兩個引數,源和目標。它的基本作用是從源系統的檔案系統上覆制檔案到目標容器的檔案系統。如果源是一個URL,那該URL的內容將被下載並複製到容器中。
ADD gs-spring-boot-docker-0.1.0.jar app.jar

# RUN命令是Dockerfile執行命令的核心部分。它接受命令作為引數並用於建立映象。
RUN sh -c 'touch /app.jar'

ENV命令用於設定環境變數。這些變數以”key=value”的形式存在,並可以在容器內被指令碼或者程式呼叫。
ENV JAVA_OPTS=""

# ENTRYPOINT 幫助你配置一個容器使之可執行化
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

這裡只需要將ADD中的gs-spring-boot-docker-0.1.0.jar改成自己的jar包名字即可。

將Dockerfile和jar放在同一目錄下,命令列進入這個目錄,使用命令:

docker build -t 映象名字:版本 .
就可以建立對應的docker映象了。

再使用命令

docker run -p 本地埠:docker中暴露的埠 -t 映象名稱:版本
看到Spring boot專案的執行過程就成功了。

可以嘗試一下訪問localhost:本地埠就可以成功訪問到docker中執行的專案了。

不過這個時候我們的映象還是在本地的,為了方便日後管理和使用,我們一般會把docker映象上傳到docker hub中。

docker hub官網:https://hub.docker.com/

1.註冊docker hub賬號

首先你需要一個Docker hub 帳號,記住username,password,email .後面在命令列驗證登陸的時候需要用到,再下來需要建立一個倉庫。

2.上傳docker映象

首先將映象打個tag

docker tag <existing-image> <hub-user>/<repo-name>[:<tag>]
這裡的tag預設的話預設就是latest。

然後登陸docker hub

docker login
docker push 映象到docker hub 的倉庫
docker push <hub-user>/<repo-name>:<tag>
= =push需要的時間比較久。最好使用加速器進行上傳。


前面一篇部落格中提到,docker的編排是一個難以處理的問題,這裡向大家介紹一下一種視覺化的docker管理平臺:Rancher。

官網:http://www.cnrancher.com/

使用Rancher,我們可以輕鬆的管理docker。當然docker的管理工具還有很多:Swarm,Kubernetes等等。不過初學者像我,視覺化的平臺比較簡單入手吧。

申請建立專案的過程這裡不贅述了。
將之前上傳到docker hub的映象放在Rancher中進行管理。

選擇新增服務:


在映象這裡填寫相應的映象。格式:<hub-user>/<repo-name>:<tag>就可以。增加埠對映,就可以訪問了