本文不描述Docker是如何安裝,如何運作hello-word,而是描述如果使用Docker制作自己的java鏡像,并上傳到鏡像伺服器,然後從公網拉取鏡像,将拉取的鏡像在本地運作成功,并可以web通路鏡像裡的java項目。
Docker 基礎,安裝教程;
1. 我們以Java項目為例,将一個已經打包好的SpringBoot項目可執行的jar包制作成鏡像,并運作
下面是我idea 建立好的一個測試項目的打包路徑,我直接進入到項目的target目錄了,idea打包後會在目前項目的target目錄下生成可執行的jar,
下面我們來使用 demo-0.0.1-SNAPSHOT.jar 來制作鏡像
2. 從Docker官網下載下傳JDK鏡像
docker pull frolvlad/alpine-oraclejdk8
下載下傳完成
使用指令檢視鏡像
docker images
jdk8鏡像已經下載下傳到本地的鏡像倉庫了
3. 在項目的Target下編寫Dockerfile 檔案并儲存
FROM frolvlad/alpine-oraclejdk8
VOLUME /tmp
ADD demo-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
4. 在Target目錄下執行鏡像建構指令
docker build -t demo:latest .
5. 現在本地啟動打包好鏡像,看看鏡像是否有沒有問題
docker run -d -p 8080:8080 demo:latest -t #運作鏡像指定8080端口
docker ps #檢視正在運作的docker容器
本地運作成功,說明鏡像沒有問題
6. 将鏡像上傳到網易雲私有鏡像伺服器,注:需要注冊網易雲賬戶,注冊成功後需要在本地終端登入網易雲的鏡像賬号。
網易雲推送本地鏡像官方教程 先看一遍教程然後自己動手實操作一下
docker login -u 網易雲使用者名 -p 密碼 hub.c.163.com
hub.c.163.com/neveryielding/demo
登入成功,給鏡像打上網易雲的标簽
docker tag 鏡像ID hub.c.163.com/你的網易雲使用者名/demo:0.1
推送到網易雲倉庫
docker push hub.c.163.com/你的網易雲使用者名/demo:0.1
推送成功
将網易雲鏡像倉庫剛推送的鏡像設定為公有
停止剛制作好的鏡像在運作的Docker容器,并删除本地鏡像,從網易雲伺服器遠端拉取鏡像,并運作。
最後注意容易運作的指令 通過 http://localhost:8080 即可通路該項目了
docker -d -p 8080:8080 demo:latset #第一種啟動方式
方式1:加了-d表示背景運作,不在目前控制台輸出日志,需要用docker stop 容器id 來停止
docker -p 8080:8080 demo:latset -t #第二種啟動方式
方式2:表示前台運作啟動會列印容器運作日志,類似于SpringBoot項目起訂那樣,關掉終端容器就自動停止