亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker怎么部署SpringBoot及替換jar包

發布時間:2022-04-07 10:18:52 來源:億速云 閱讀:839 作者:iii 欄目:編程語言

本篇內容主要講解“docker怎么部署SpringBoot及替換jar包”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“docker怎么部署SpringBoot及替換jar包”吧!

工程目錄

docker怎么部署SpringBoot及替換jar包

dockerfile文件

創建dockerfile文件,后面會用到。

文件部署

服務器新建/data/docker/hellolearn文件夾(文件路徑可自定義),將maven打包好的jar包和上文中創建的dockerfile文件復制到服務器新建的文件夾(/data/docker/hellolearn)。

docker怎么部署SpringBoot及替換jar包

生成鏡像

docker build -t hellolearn .

docker build -t 鏡像名稱:標簽 dockerfile的相對位置,點號代表當前目錄,不寫tag默認是latest。

docker怎么部署SpringBoot及替換jar包

啟動容器

docker run -d -p 8301:8301 --name hellolearn hellolearn

docker start hellolearn

-d參數是讓容器后臺運行;--name為指定容器的名稱;-p 是做端口映射,此時將服務器中的8301(冒號前的端口)端口映射到容器中的8301(冒號后的端口)端口(application.properties配置的是8301)

訪問web

docker怎么部署SpringBoot及替換jar包

jar包映射部署

按照上文的步驟已足可以輕松應對docker部署springboot的全流程。但是這樣在啟動容器后,每次需更新jar包時,都得重新制作鏡像,再重新制作容器。流程及其繁瑣,效率極低。那如何在不更新鏡像或者容器的前提下直接更新jar包完成部署呢?

5.1 更新dockerfile

最后一行 entrypoint ["java","-jar","/data/learn-web-0.0.1-snapshot.jar"] 會運行容器里/data目錄下的learn-web-0.0.1-snapshot.jar文件。

5.2 使用docker build命令構建鏡像

docker build -t hellolearn .

5.3 創建&啟動容器

docker run --name hellolearn -it -v /data/docker/newhellolearn/package:/data -d -p 8301:8301 hellolearn

-v 宿主機目錄關聯容器目錄。這樣宿主機的/data/docker/newhellolearn/package目錄就與docker的/data目錄進行映射。

這樣的話,當jar包發生變動時,直接更新宿主機的/data/docker/newhellolearn/package目錄下的jar包即可,更新jar包之后需要將容器重啟一下。

腳本部署

通過jar包部署方式引起一個問題,若jar包名字發生變化,比如版本號變化(learn-web-0.0.1-snapshot.jar-->>learn-web-1.0.1-snapshot.jar)。需要怎么處理呢?下面就介紹第三種通過腳本部署的方式。

6.1 創建hellolearn.sh文件

java -jar /data/learn-web-0.0.1-snapshot.jar

將hellolearn.sh上傳到/data/docker/hellolearn/scriptdeploy/package,這個文件夾路徑可以自定義,記住這個文件夾路徑,后面還會用到。

6.2 添加腳本執行權限

chmod +x hellolearn.sh

6.3 創建dockerfile

cmd ["sh","-c","/data/hellolearn.sh"] 表示在容器啟動時啟動6.1中創建的hellolearn.sh腳本。

注意最后一條命令上文中都是entrypoint,在腳本部署中改成了cmd,至于entrypoint和cmd的具體區別感興趣的可以了解一下。

6.4 上傳jar包

將jar包放入hellolearn.sh的同一個文件夾目錄,即/data/docker/hellolearn/scriptdeploy/package,創建容器時再將該目錄(宿主機目錄)與容器的/data目錄進行映射。。

6.5 文件目錄結構圖

docker怎么部署SpringBoot及替換jar包

這里的目錄結構不知道大家暈不暈,上傳一張我這宿主機的目錄結構圖,一目了然。

6.6 創建鏡像

docker build -t hellolearn-script .

末尾的點號代表當前目錄,所以生成鏡像的命令需要在dockerfile所在的目錄執行。

6.7 創建&啟動容器

docker run --name hellolearn-script -it -v /data/docker/hellolearn/scriptdeploy/package:/data -d -p 8302:8301 hellolearn-script

docker start hellolearn-script

將宿主機的/data/docker/hellolearn/scriptdeploy/package目錄與容器的/data目錄映射關聯。這樣的話,當jar包發生變動時,直接更新宿主機目錄下的jar包即可。即使jar包名字發生變化,也需要再更新一下hellolearn.sh腳本。更新之后重啟容器。

6.8 web測試效果

docker怎么部署SpringBoot及替換jar包

查看docker日志

docker logs [options] container id

options說明:

-f : 跟蹤日志輸出
--since :顯示某個開始時間的所有日志
-t : 顯示時間戳
--tail :僅列出最新n條容器日志

7.1 查看指定時間后的日志,只顯示最后100行:

docker logs -f -t --since="2020-10-01" --tail=100 container id

7.2 查個指定時間區段的日志

docker logs -t --since="2020-10-01t19:00:00" --until "2020-10-01t19:00:00" container id

7.3 查看指定時間后面的日志:

docker logs -t --since="2020-10-01t19:00:00" container id

7.4 查看最近5分鐘的日志:

docker logs --since 5m container id

7.5 通過 exec 命令對指定的容器執行 bash:

docker exec hellolearn -it /bin/bash 或者 docker exec -it hellolearn bash

7.6 查看docker ip

docker inspect --format='{{.networksettings.ipaddress}}' hellolearn

遇到的問題

問題描述:error response from daemon: driver failed programming external connectivity on endpoint flamboyant_leavitt (iptables failed: iptables --wait -t nat -a docker -p tcp -d 0/0 --dport 8301 -j dnat --to-destination 172.17.0.2:8301 ! -i docker0: iptables: no chain/target/match by that name.

解決方案:重啟docker。 systemctl restart docker

到此,相信大家對“docker怎么部署SpringBoot及替換jar包”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

房产| 库尔勒市| 柳林县| 绥滨县| 黄陵县| 万宁市| 赞皇县| 获嘉县| 永昌县| 赤水市| 台湾省| 安庆市| 荣成市| 平江县| 温宿县| 抚宁县| 西丰县| 阿拉善盟| 威信县| 平定县| 通河县| 桦南县| 灌南县| 东阿县| 通辽市| 黔江区| 钟祥市| 屏南县| 探索| 桃江县| 靖宇县| 琼结县| 定远县| 苍溪县| 南平市| 台南县| 虹口区| 罗江县| 格尔木市| 新建县| 闽侯县|