簡介
簡單介紹Spring專案使用Docker部署的過程。其中docder的各種好處與使用在這裡就不再介紹了。
大家可在這裡學習docker www.runoob.com/docker/docker-tutor...
步驟:本機安裝 docker -> 新建Spring專案 -> 建立docker file -> 建立映象 -> 本機測試 -> 上傳docker映象 -> 伺服器安裝 docker -> 拉取 docker -> 執行 docker.
環境
- 本地環境:Windows8 , java1.8 , idea2017.1.3
- 伺服器環境: cenos7.3
docker 本地安裝(點選檢視)
- 啟動docker
在安裝目錄下開啟~\bash.sh
檔案。如下表示成功
- 啟動docker
開啟PowerShell工具,輸入docker images
,可知查無映象。
建立Spring專案
建立成功後, 新建一個TestController
並寫上一個簡單的介面
@GetMapping("/hello")
public String hello(){
return "hello docker!";
}
執行專案,在瀏覽器中訪問介面
- 打包出 jar 包
在專案的目錄下執行mvn install
, 可在tagrat
目錄下找到jar 如圖:
建立 Dockerfile配置
Dockerfile的建立位置就是在專案的根目錄下,與pom.xml平級。在這裡我建立了一個名為dockerfile
的檔案,無需字尾。
檔案內容:
#依賴的基礎映象jdk8
FROM java:8
#需要暴露出去的埠,也就是我專案的埠
EXPOSE 8080
#作者資訊
MAINTAINER haile
#將主機環境的jar包,以檔名demo.jar新增到docker映象中。就是因為這條命令,mavnen執行報錯
ADD /target/demo-0.0.1-SNAPSHOT.jar dockerdemo.jar
#啟動容器之後,預設的執行命令
ENTRYPOINT ["java","-jar","dockerdemo.jar"]
然後在Dockerfile同級目錄下使用命令docker build -t dockerfile .,生成之後使用docker images可以檢視到生成的dockerfile映象,如果是第一次將會較慢,需要下載jdk8的映象。
建立容器
執行命令 docker run -p 6060:8080 -t dockerfile
,建立一個映象例項,然後以宿主機的6060埠連結docker容器的8080埠。然後可以執行任意多個例項。能看到 Spring 專案執行成功!
透過瀏覽器訪問宿主機ip和埠, 可正常訪問 。
上傳映象
在 hub.docker.com/ 上註冊自己的賬號並建立倉庫,在這裡我建立了一個 haixia\dockerfile
倉庫,
-上傳
先登入,輸入剛才的使用者名稱密碼。
docker login --username=haixia
上傳映象值hub倉庫docker pull dockerfile
這裡你會發現 hub 倉庫,拒絕我們的請求,我們需要把映象名改成與hub一致。
docker tag 映象ID Docker ID/倉庫名:新的標籤名(tag)docker tag bd213262aa2c haixia/dockerfile:latest
然後在 docker pull haixia/dockerfile
可成功!
伺服器端安裝與部署
Cenos Docker 安裝
Docker 支援以下的 64 位 CentOS 版本:
- CentOS 7
- CentOS 8
- 更高版本…
使用官方安裝指令碼自動安裝curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安裝完成後 docker
預設是關閉的! 透過命令開啟sudo systemctl start docker
登入並下載映象檔案
$ docker login --username=haixia
$ docker pull haixia/dockerfile
檢視映象
[root@iZf0ksq5sifurtZ /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
haixia/dockerfile latest 665c5b2652fb 3 days ago 661MB
[root@iZf0ksq5sifurtZ /]#
接下來就可以執行執行映象檔案了
docker run -p 6060:8080 -t haixia/dockerfile
將伺服器的 6060 端指向 docker 的8080 埠。
瀏覽器 訪問 ip+埠/hello,表示成功!
結語
已初叔完成 docker 的使用。後續將繼續研究 spring + mysql +redis 的 docker 部署。
本作品採用《CC 協議》,轉載必須註明作者和本文連結