新建一個spring boot項目如下:
該項目,就一個請求
訪問端口爲:
server:
port: 8081
將項目打包爲jar
新建DockerFile文件,注意必須爲DockerFile文件名稱,並且沒有擴展名稱,別文件類型爲.txt格式的
文件內容如下:
FROM java:8
VOLUME /tmp
ADD test-0.0.1-SNAPSHOT.jar test.jar
ENTRYPOINT ["java","-jar","/test.jar"]
配置說明:
FROM ,表示使用 Jdk8 環境 爲基礎鏡像,如果鏡像不是本地的會從 DockerHub 進行下載
VOLUME ,VOLUME 指向了一個/tmp的目錄,由於 Spring Boot 使用內置的Tomcat容器,Tomcat 默認使用/tmp作爲工作目錄。這個命令的效果是:在宿主機的/var/lib/docker目錄下創建一個臨時文件並把它鏈接到容器中的/tmp目錄
ADD ,拷貝文件並且重命名
ENTRYPOINT ,格式:ENTRYPOINT ["","",""]
配置容器啓動後執行的命令,並且不可被 docker run 提供的參數覆蓋。(每個 Dockerfile 中只能有一個 ENTRYPOINT ,當指定多個時,只有最後一個起效)
將生成的jar和DockerFile文件放在一起,隨便哪個文件夾中,如我的放在桌面yu目錄下:
進入目錄,cmd模式
構建docker鏡像,注意後面的點別省略了,點表示當前目錄
代表使用當前路徑的 Dockerfile 進行構建
docker build -t demo .
生成的鏡像取名爲demo, -t爲鏡像的名稱/標籤
可以看到依次執行了我們的DockerFile文件中的命令,因爲我之前已經下載了java的鏡,就不必重新拉取了
我們關閉cmd,在docker頁面查看所有的鏡像如下:
可以看到demo鏡像成功生成了,下面我們運行使用鏡像生成容器運行:
docker run -d -p 8081:8081 demo
可以看到啓動成功了
說明:
-d:後臺運行命令
-p:宿主機和運行端口映射
查看正在運行的容器:
也可以看到容器成功運行了,下面我們瀏覽器訪問下:
http://宿主ip:8081/yu
結果如下:
成功運行了。。。