在 Docker 容器中,經(jīng)常會(huì)有需要查看日志的情況,例如查看容器在運(yùn)行過程中產(chǎn)生的錯(cuò)誤或者調(diào)試信息。但是有時(shí)候我們會(huì)發(fā)現(xiàn)在 Docker 中無法查看日志,本文將針對(duì)這一問題進(jìn)行討論與解決。 在 Docker 中,通過以下命令可以查看正在運(yùn)行的容器日志:
docker logs [container_id]然而有時(shí)候我們會(huì)發(fā)現(xiàn)運(yùn)行以上命令后并無法輸出任何信息,這是由于 Docker 會(huì)將標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出重定向到容器日志文件中,從而無法在終端中查看到。 為了解決這一問題,我們可以使用以下命令查看容器日志實(shí)時(shí)輸出:
docker logs -f [container_id]通過 ‘-f’ 參數(shù),Docker 將持續(xù)監(jiān)控容器日志,實(shí)時(shí)輸出容器中的日志信息,這也是我們最常用的查看容器日志的方式之一。 若以上方法均無法輸出日志信息,可能是由于 Docker 日志驅(qū)動(dòng)的設(shè)置問題,我們可以通過以下方式查看與修改 Docker 日志驅(qū)動(dòng)設(shè)置:
docker inspect --format='{{.HostConfig.LogConfig.Type}}' [container_id] docker inspect --format='{{.HostConfig.LogConfig.Config}}' [container_id]以上命令將分別輸出容器的日志驅(qū)動(dòng)類型和配置項(xiàng)。如果控制臺(tái)輸出為空,則表示容器使用的是默認(rèn)的日志驅(qū)動(dòng)設(shè)置。如果需要修改 Docker 的日志驅(qū)動(dòng)設(shè)置,可以通過以下方式運(yùn)行容器:
docker run --log-driver=syslog --log-opt syslog-address=udp://logs.example.com:514 [image_name]以上命令將使用 syslog 作為日志驅(qū)動(dòng),輸出將發(fā)送到指定的 syslog 服務(wù)器地址以 UDP 協(xié)議的方式進(jìn)行傳輸。 以上就是關(guān)于 Docker 不顯示日志的解決方法,希望對(duì)大家能有所幫助!