日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

第一個:端口映射
第二個:指定內存大小
第三個:讀取、寫入物理文件
第四個:日志文件
第五個:多個容器內部網絡訪問
第六個:遇到的問題

Docker 如何運行多個 Springboot?

 

第一個:端口映射

Nginx使用的是轉發,那么這個是最簡單的。

[hn@iZbp1gp1t778obaz5m8vk8Z guides]$ Docker run -d -p 8093:8093 guides-collect
 
將物理的端口映射為虛擬的端口即可,這個很簡單

第二個:指定內存大小

-m,--memory                  內存限制,格式是數字加單位,單位可以為 b,k,m,g。最小為 4M
--memory-swap                內存+交換分區大小總限制。格式同上。必須比-m設置的大
--memory-reservation         內存的軟性限制。格式同上
--oom-kill-disable           是否阻止 OOM killer 殺死容器,默認沒設置
--oom-score-adj              容器被 OOM killer 殺死的優先級,范圍是[-1000, 1000],默認為 0
--memory-swAppiness          用于設置容器的虛擬內存控制行為。值為 0~100 之間的整數
--kernel-memory              核心內存限制。格式同上,最小為 4M
樣例:
 
[hn@iZbp1gp1t778obaz5m8vk8Z guides]$ docker run -d -m 1G --memory-swap 4G -p 8093:8093 guides-collect

第三個:讀取物理文件、寫入物理文件

上面兩個情況啟動時就加載,但是運行時需要不斷讀取本地文件該怎么辦嘞 ?

[hn-docker@iZbp1gp1t778obaz5m8vk8Z ~]$ docker run -d -m 1G --memory-swap 4G -p 8092:8092 
-v /home/hn-docker/docker/wechat:/springboot/wechat 
guides-message
 
message容器的啟動相當于是先從把鏡像內的文件地址,映射到物理機器上的地址;如
鏡像地址:/springboot/wechat
物理地址:/home/hn-docker/docker/wechat

Bind mounts

Bind mounts模式和Volumes非常相似,不同點在于Bind mounts模式是將宿主機上的任意文件或文件夾掛載到容器,而Volumes本質上是將Docker服務管理的一塊區域(默認是/var/lib/docker/volumes下的文件夾)掛載到容器。

Bind mounts的使用和Volumes類似,也是通過-v或--mount參數將宿主機文件掛載容器中。下面是一個例子:

使用--mount參數時,需要指定type=bind:

$ docker run -d 
 --name=nginxtest 
 --mount type=bind,source=/usr/local/web,destination=/usr/share/nginx/html 
 nginx:latest

上面的例子將宿主機上的/usr/local/web文件夾掛載到容器中的/usr/share/nginx/html文件夾。

或者使用-v參數:

$ docker run -d 
 --name=nginxtest 
 -v /usr/local/web:/usr/share/nginx/html 
 nginx:latest
Docker 如何運行多個 Springboot?

 

第四個:日志文件

第一步:先獲取運行容器的ID:da3199e9d032        
 
[hn@iZbp1gp1t778obaz5m8vk8Z guides]$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
da3199e9d032        guides-collect      "JAVA -Djava.secur..."   2 hours ago         Up 2 hours          0.0.0.0:8093->8093/tcp   sharp_mirzakhani
 
第二步:查詢運行日志 - 搞定
[hn@iZbp1gp1t778obaz5m8vk8Z guides]$ docker logs -f 51c384b8afee

參考信息:

命令格式:

$ docker logs [OPTIONS] CONTAINER
  Options:
        --details        顯示更多的信息
    -f, --follow         跟蹤實時日志
        --since string   顯示自某個timestamp之后的日志,或相對時間,如42m(即42分鐘)
        --tail string    從日志末尾顯示多少行日志, 默認是all
    -t, --timestamps     顯示時間戳
        --until string   顯示自某個timestamp之前的日志,或相對時間,如42m(即42分鐘)

例子:

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

$ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID

查看最近30分鐘的日志:

$ docker logs --since 30m CONTAINER_ID

查看某時間之后的日志:

$ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID

查看某時間段日志:

$ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID

第五個:宿主機與容器網絡交互

問題描述:當你docker內運行的springboot想訪問宿主機的redis、獲取其他容器的MySQL時,朋友你是否傻眼了

解決方案:需要查詢到宿主機容器的軟連接ip,使用內網ip訪問就ok了
 
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' xxxid   (容器id)
 
例如:
[yn@iZbp1gp1t778obaz5m8vk8Z logs]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
abe77b60254a        assistant            "java -Djava.secur..."   6 minutes ago       Up 6 minutes        0.0.0.0:9304->8091/tcp   nostalgic_albattani
37c6dd777636        collect              "java -Djava.secur..."   30 hours ago        Up 30 hours         0.0.0.0:8093->8093/tcp   silly_poincare
4dcb9fcae281        message              "java -Djava.secur..."   3 days ago          Up 3 days           0.0.0.0:8092->8092/tcp   reverent_galileo
 
比如要查:abe77b60254a 這個容器的網絡地址
[yn@iZbp1gp1t778obaz5m8vk8Z logs]$ docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' abe77b60254a
172.17.0.4
 
這個時候:
abe77b60254a 這個容器的IP地址就是:172.17.0.4
想訪問就走內網地址 172.17.0.4 即可
同時也可得知宿主機的IP就應該是 172.17.0.1

第六個:你會遇到的坑

一:鏡像啟動失敗,然后怎么看日志

啟動失敗后,需要知道是哪個鏡像的ID、然后用日志去查:docker logs -f 鏡像id

例如:
[yn@iZbp1gp1t778obaz5m8vk8Z logs]$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
abe77b60254a        assistant            "java -Djava.secur..."   6 minutes ago       Up 6 minutes        0.0.0.0:9304->8091/tcp   nostalgic_albattani
37c6dd777636        collect              "java -Djava.secur..."   30 hours ago        Up 30 hours         0.0.0.0:8093->8093/tcp   silly_poincare
4dcb9fcae281        message              "java -Djava.secur..."   3 days ago          Up 3 days           0.0.0.0:8092->8092/tcp   reverent_galileo
 
查這個容器日志最新的10行
[yn@iZbp1gp1t778obaz5m8vk8Z ~]$ docker logs -f -t --tail 10 abe77b60254a   

二:日志時間或者數據存儲至數據庫比實際時間小8個小時

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
Docker 如何運行多個 Springboot?

 

作者:悟能的師兄

原文鏈接:https://blog.csdn.net/yexiaomodemo/article/details/110263394

分享到:
標簽:Docker
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定