最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

docker啟動(dòng)jar包輸出日志的問(wèn)題以及解決

 更新時(shí)間:2023年08月23日 15:47:19   作者:vi__ky  
這篇文章主要介紹了docker啟動(dòng)jar包輸出日志的問(wèn)題以及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

docker啟動(dòng)jar包輸出日志的問(wèn)題

由于公司使用docker, 傳統(tǒng)的docker都是在dockerfile中使用CMD或者ENTRYPOINT指定啟動(dòng)jar包命令,

如下:

ENTRYPOINT ["nohup","java","-jar","-Xms1G","-Xmx2G","-Dspring.profiles.active=prod","/xings/datamanagement.jar"]        

然后查看docker logs來(lái)獲取啟動(dòng)日志, 但是這樣好像不太方便查詢和保存歷史日志. 于是我想啟動(dòng)的時(shí)候就指定日志輸出,

類似下面這樣:

ENTRYPOINT ["nohup","java","-jar","-Xms1G","-Xmx2G","-Dspring.profiles.active=prod","/xings/datamanagement.jar",">> ","/projects/datas.log","&"] 

不過(guò)發(fā)現(xiàn)并不生效.

思路與解決方式

首先進(jìn)入到容器當(dāng)中去手動(dòng)啟動(dòng),發(fā)現(xiàn)可以輸出日志,

其次將日志目錄- v映射出來(lái)就可以在外面實(shí)時(shí)查看日志了

但是還有一個(gè)問(wèn)題就是我不可能每次都進(jìn)入容器里邊啟動(dòng)項(xiàng)目,但是如果寫(xiě)到dockerfile中去啟動(dòng)即死板(后期改動(dòng)jar包都需要重新build)而且不能輸出程序log日志,于是打算將鏡像抽取出來(lái),公用,然后單寫(xiě)shell去啟動(dòng)docker.

想到就開(kāi)始做:

原dockerfile文件:

FROM java:8
MAINTAINER xs
COPY data-manager-agent-0.0.1-SNAPSHOT.jar  /xings/datamanagement.jar
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
ENTRYPOINT ["nohup","java","-jar","-Xms1G","-Xmx2G","-Dspring.profiles.active=prod","/xings/datamanagement.jar"]      
           ```                                           
將員原來(lái)死板的docker改為:
```c
FROM java:8
MAINTAINER xs
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

其中run的內(nèi)容是將容器時(shí)間和本地服務(wù)器時(shí)間一致, 并且該dockerfile只構(gòu)建基礎(chǔ)鏡像,切只有一個(gè)java8, 所有只用到j(luò)ava8的項(xiàng)目都可以使用此鏡像,相對(duì)原來(lái)每次改動(dòng)代碼都需要重新傳jar包去重新build dockerfile創(chuàng)建容器方便多了.

啟動(dòng)的時(shí)候直接映射目錄,ip,和一些啟動(dòng)資源配置:

docker run --name datamanagement -v $PWD:/xings/ \
    --network host --cpus 1 -m 2G \
    --ipc=host --memory-swap -1 datamanagement  nohup java -jar -Xms1G -Xmx2G -Dspring.profiles.active=prod data-manager-agent-0.0.1-SNAPSHOT.jar >> datam.log 2>&1 &

完美解決, 比較坑的是 下面啟動(dòng)jar包的命令(nohup…)如果是寫(xiě)腳本一定不要換行, 不然就啟動(dòng)到宿主機(jī)了,另外不要加-d,啟動(dòng)后可以ctr+z終止, 不影響日志輸出

錯(cuò)誤連寫(xiě)范例:

docker run --name datamanagement -d -v $PWD:/xings/ \
    --network host --cpus 1 -m 2G \
    --ipc=host --memory-swap -1 datamanagement  
    nohup java -jar -Xms1G -Xmx2G -Dspring.profiles.active=prod data-manager-agent-0.0.1-SNAPSHOT.jar >> datam.log 2>&1 &

心得

整體的一個(gè)啟動(dòng)腳本如下 docker.sh:

#!/bin/bash
set -e
basepath=$(cd `dirname $0`; pwd)
function easy_start {
  nohup java -jar -Xms1G -Xmx2G -Dspring.profiles.active=prod /xings/data-manager-agent-0.0.1-SNAPSHOT.jar  >> datam.log 2>&1 &
}
function start {
  docker run --name datamanagement -v $PWD:/xings/ \
    --network host --cpus 1 -m 2G \
    --ipc=host --memory-swap -1 datamanagement  nohup java -jar -Xms1G -Xmx2G -Dspring.profiles.active=prod data-manager-agent-0.0.1-SNAPSHOT.jar >> datam.log 2>&1 &
}
function stop {
  docker rm -f datamanagement
}
function restart {
  stop $1 $2 $3 || return 1
  start $1 $2 $3 || return 1
}
$@

啟動(dòng)命令直接輸入 sh docker.sh restart 即一鍵自動(dòng)化刪除原來(lái)容器并基于已有鏡像去構(gòu)造新的容器,$PWD:/xings/ 即是你關(guān)聯(lián)映射的目錄 PWD即你jar包所在路徑,/xings/即是你容器中映射的路徑,其實(shí)就是容器內(nèi)/xings下和你現(xiàn)在的PWD目錄下由于一模一樣的東西, datam.log即可直接在宿主機(jī)查看日志信息, 并且后期按天切分,日志分析,錯(cuò)誤回歸查詢等操作都很方便了。

docker看jar包日志

docker看jar包日志

docker ps -a

Error: No such container: 869c6eb7fe99
[root@kubernetes-work2 a7dea06507119d4d732094dad79d02f893e49311457225cd764321cee90f93c0]# docker ps -a
CONTAINER ID   IMAGE                                                                                                                   COMMAND                  CREATED        STATUS        PORTS                                                                                  NAMES
2e33bd378260   zucc-gcsm-docker.pkg.coding.net/gcsm-web/gcsm-product/java-spring-app:master-596bf1cc48b9303eef33ac8ab5ea66dffe21d63c   "java -jar ./GCSM-1.…"   25 hours ago   Up 25 hours   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                              java-spring-app
7143bb7bb5e8   minio/minio                                                                                                             "/usr/bin/docker-ent…"   2 days ago     Up 2 days     0.0.0.0:9000->9000/tcp, :::9000->9000/tcp, 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp   affectionate_wozniak
[root@kubernetes-work2 a7dea06507119d4d732094dad79d02f893e49311457225cd764321cee90f93c0]# docker logs -f    java-spring-app

名字是

java-spring-app
docker logs -f java-spring-app

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Docker鏡像制作詳解介紹

    Docker鏡像制作詳解介紹

    這篇文章主要介紹了 Docker鏡像制作詳解介紹的相關(guān)資料,需要的朋友可以參考下
    2016-10-10
  • Docker部署Nacos鏡像的方法(保姆級(jí)教程)

    Docker部署Nacos鏡像的方法(保姆級(jí)教程)

    本文主要介紹了Docker部署Nacos鏡像的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • 使用非root用戶安裝及啟動(dòng)docker的問(wèn)題(rootless模式運(yùn)行)

    使用非root用戶安裝及啟動(dòng)docker的問(wèn)題(rootless模式運(yùn)行)

    docker是使用--userns-remap容器用戶映射宿主機(jī)用戶的方式來(lái)解決問(wèn)題,用戶和組的映射由兩個(gè)配置文件來(lái)控制,分別是/etc/subuid和/etc/subgid,本文給大家介紹非root用戶啟動(dòng)docker的問(wèn)題,感興趣的朋友一起看看吧
    2022-05-05
  • CentOS 7.x docker使用overlay2存儲(chǔ)方式

    CentOS 7.x docker使用overlay2存儲(chǔ)方式

    這篇文章主要介紹了CentOS 7.x docker使用overlay2存儲(chǔ)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • docker部署nginx及nginx.conf文件配置方式

    docker部署nginx及nginx.conf文件配置方式

    這篇文章主要介紹了docker部署nginx及nginx.conf文件配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • MinIO存儲(chǔ)在docker中安裝及其使用方式

    MinIO存儲(chǔ)在docker中安裝及其使用方式

    這篇文章主要介紹了MinIO存儲(chǔ)在docker中安裝及其使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 教你使用Docker?Compose一鍵部署前后端分離項(xiàng)目

    教你使用Docker?Compose一鍵部署前后端分離項(xiàng)目

    Compose是一個(gè)定義和管理多容器的工具,使用Python語(yǔ)言編寫(xiě),下面這篇文章主要給大家介紹了關(guān)于如何使用Docker?Compose一鍵部署前后端分離項(xiàng)目的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 解決Mac Docker x509證書(shū)的問(wèn)題

    解決Mac Docker x509證書(shū)的問(wèn)題

    這篇文章主要介紹了解決Mac Docker x509證書(shū)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Docker鏡像的制作與使用淺析

    Docker鏡像的制作與使用淺析

    這篇文章主要介紹了Docker鏡像的制作與使用淺析的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 云原生Docker創(chuàng)建并進(jìn)入mysql容器的全過(guò)程

    云原生Docker創(chuàng)建并進(jìn)入mysql容器的全過(guò)程

    前面我們已經(jīng)安裝好了Docker,也簡(jiǎn)單了解了Docker,下面這篇文章主要給大家介紹了關(guān)于云原生Docker創(chuàng)建并進(jìn)入mysql容器的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02

最新評(píng)論

滨州市| 读书| 大方县| 榆社县| 固镇县| 玛多县| 龙岩市| 洪雅县| 三原县| 河池市| 平舆县| 镇康县| 揭阳市| 崇义县| 调兵山市| 连平县| 特克斯县| 牡丹江市| 河曲县| 曲水县| 宁阳县| 克东县| 蓬莱市| 汉沽区| 肇庆市| 郑州市| 万年县| 海兴县| 内丘县| 石景山区| 乌兰县| 太康县| 唐河县| 湖口县| 东乡族自治县| 本溪市| 简阳市| 化隆| 墨江| 灵璧县| 海南省|