Docker容器的調(diào)試技巧之docker logs與docker service logs解讀
調(diào)試容器
不少剛接觸Docker的同學(xué),通常面對(duì)docker容器起不來(lái),或者一直在重復(fù)啟動(dòng)中不知措施。
docker提供了一系列簡(jiǎn)單命令,很容易調(diào)試容器運(yùn)行中的問(wèn)題。
原理很簡(jiǎn)單,就是可以直接輸出容器運(yùn)行時(shí)(或過(guò)去式的)的日志。
通常有4種方式:
- docker run (控制臺(tái)上啟動(dòng)容器)
- docker exec (附加進(jìn)入后臺(tái)容器)
- docker logs
- docker service logs
下面依次介紹之
控制臺(tái)啟動(dòng)容器
打個(gè)比如調(diào)試啟動(dòng)redis容器
docker run -it -rm redis redis-server [redis 啟動(dòng)參數(shù)略...]
這樣redis-server的日志輸出直接打印到控制臺(tái)上
缺點(diǎn)是,這種方式僅供啟動(dòng)容器調(diào)試時(shí)使用,無(wú)法操作后臺(tái)運(yùn)行中的容器,或已失效的容器。
docker exec 附加進(jìn)入后臺(tái)容器
有時(shí)候需要進(jìn)入容器內(nèi),查看系統(tǒng)運(yùn)行狀況。這時(shí)候可以使用docker exec。
使用docker exec的前提是容器在運(yùn)行中。因此當(dāng)容器不能正常工作時(shí),往往無(wú)法使用該命令
docker logs
實(shí)際上docker容器不管處于什么狀態(tài),都可以使用docker logs獲取 容器的所有日志。
docker logs [容器名]
docker logs還有局限性,即無(wú)法獲取docker swarm模式下,啟動(dòng)失敗的容器日志
docker service logs
針對(duì)docker swarm模式,獲取容器日志的命令。
一般,依次執(zhí)行下列命令,得到某服務(wù)的容器名
docker service ls docker service ps [服務(wù)名]
然后就可以通過(guò)容器名,獲取其日志了
docker service logs [容器名]
docker service logs顯示日志為空
要讓 docker service logs 正常工作,需要設(shè)置docker一些配置
vi /etc/docker/daemon.json
給該文件添加:
{ "log-driver": "json-file", "log-opts": { "labels": "production_status,geo", "env": "os,customer" } }
然后重啟docker
service docker restart
關(guān)于docker service logs的詳細(xì)介紹,可以參考官方文檔:
https://docs.docker.com/engine/reference/commandline/service_logs/#extended-description
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker快速搭建PHP+Nginx+Mysql環(huán)境及踩坑
本文主要介紹了Docker快速搭建PHP+Nginx+Mysql環(huán)境及踩坑 ,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Docker下MySQL配置文件不生效的解決方法(超全面!)
在Docker中運(yùn)行MySQL并遇到需要調(diào)整配置的情況時(shí),比如想要關(guān)閉ONLY_FULL_GROUP_BY的嚴(yán)格模式,我們可以通過(guò)以下步驟來(lái)實(shí)現(xiàn)sql_mode的修改:以下是解決此類問(wèn)題的步驟和思路,需要的朋友可以參考下2024-09-09Docker CentOS7的系統(tǒng)上安裝部署以及基礎(chǔ)教程
這篇文章主要介紹了Docker CentOS7的系統(tǒng)上安裝部署以及基礎(chǔ)教程的相關(guān)資料,需要的朋友可以參考下2016-10-10詳解Docker私有倉(cāng)庫(kù)Registry的搭建驗(yàn)證
這篇文章主要介紹了詳解Docker私有倉(cāng)庫(kù)Registry的搭建驗(yàn)證,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05在Docker容器中部署靜態(tài)網(wǎng)頁(yè)的方法教程
這篇文章主要給大家介紹了在Docker容器中部署靜態(tài)網(wǎng)頁(yè)的方法教程,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-06-06Docker部署SpringBoot應(yīng)用的實(shí)現(xiàn)步驟
本文主要介紹了Docker部署SpringBoot應(yīng)用,Docker可以巧妙的解決函數(shù)庫(kù)、依賴沖突問(wèn)題,具有一定的參考價(jià)值,感興趣的可以了解一下2021-11-11