亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Docker?日志管理的實(shí)現(xiàn)示例

 更新時(shí)間:2024年12月23日 11:34:41   作者:學(xué)堂在線  
Docker提供了多種日志驅(qū)動(dòng)來(lái)管理和提取容器日志,包括json-file、syslog、fluentd等,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

Docker 提供了多種機(jī)制來(lái)管理和提取容器日志,這些機(jī)制被稱為日志驅(qū)動(dòng)(logging driver)。默認(rèn)情況下,Docker 使用 json-file 作為默認(rèn)的日志驅(qū)動(dòng),它將日志信息以 JSON 文件的形式存儲(chǔ)在 Docker 主機(jī)上。

Docker 日志子命令

docker logs:用于查看容器的日志輸出。使用 -f 參數(shù)可以持續(xù)查看新產(chǎn)生的日志,類似于 tail -f。使用 --tail 參數(shù)可以指定顯示日志的條數(shù)。

docker logs -f --tail 10 my-container

示例注釋如下:

docker logs      # Docker命令,用于獲取容器的日志輸出
-f             # 選項(xiàng),表示跟隨日志輸出,類似于Unix命令行中的'tail -f'
--tail 10      # 選項(xiàng),指定要顯示的最后N條日志記錄,這里是最后10條
my-container   # 參數(shù),指定要獲取日志的容器名稱或ID
  • docker logs:這是 Docker 用于獲取容器日志的標(biāo)準(zhǔn)命令。
  • -f:這個(gè)選項(xiàng)告訴 Docker 持續(xù)輸出新的日志,直到你手動(dòng)停止(例如,通過(guò)按下 Ctrl+C)。
  • --tail 10:這個(gè)選項(xiàng)指定 Docker 應(yīng)該顯示容器日志的最后10條記錄。如果你不指定 -tail 參數(shù),docker logs 命令將默認(rèn)顯示最后幾條日志。
  • my-container:這是你想要查看日志的容器的名稱或ID。你需要將其替換為實(shí)際的容器名稱或ID。

Docker 日志驅(qū)動(dòng)(logging driver)

Docker 支持多種日志驅(qū)動(dòng),可以根據(jù)需要選擇使用。以下是一些常用的日志驅(qū)動(dòng)及其配置參數(shù):

json-file

示例:

docker run --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 my-image
  • max-size:滾動(dòng)前日志的最大大小,一個(gè)正整數(shù)加上一個(gè)代表測(cè)量單位(k,m 或 g)的修飾符。默認(rèn)為 -1(無(wú)限制)。
  • max-file:可以存在的最大日志文件數(shù)量。如果滾動(dòng)日志會(huì)創(chuàng)建多余文件,則會(huì)刪除最舊的文件。只有在設(shè)置了 max-size 時(shí)才有效。一個(gè)正整數(shù),默認(rèn)為1。
  • labels 和 env:用于高級(jí)日志標(biāo)記選項(xiàng)。

示例注釋如下:

docker run           # Docker命令,用于創(chuàng)建并啟動(dòng)一個(gè)新的容器
--log-driver json-file  # 選項(xiàng),指定日志驅(qū)動(dòng)為json-file,這是一種將日志以JSON格式寫入文件的驅(qū)動(dòng)
--log-opt max-size=10m  # 選項(xiàng),設(shè)置日志文件的最大尺寸為10MB
--log-opt max-file=3    # 選項(xiàng),設(shè)置日志文件的最大文件數(shù)為3,當(dāng)達(dá)到這個(gè)數(shù)量時(shí),最舊的日志文件將被刪除
my-image             # 參數(shù),指定要運(yùn)行的鏡像名稱或ID
  • docker run:這是 Docker 命令,用于從鏡像創(chuàng)建并啟動(dòng)一個(gè)新的容器。
  • --log-driver json-file:這個(gè)選項(xiàng)指定了容器的日志驅(qū)動(dòng)為 json-file,意味著 Docker 將容器的日志以 JSON 格式存儲(chǔ)在文件中。
  • --log-opt max-size=10m:這個(gè)選項(xiàng)用于設(shè)置日志文件的最大尺寸限制。10m 表示每個(gè)日志文件的最大大小為 10MB。當(dāng)達(dá)到這個(gè)大小時(shí),Docker 將創(chuàng)建一個(gè)新的日志文件。
  • --log-opt max-file=3:這個(gè)選項(xiàng)用于設(shè)置可以存在的日志文件的最大數(shù)量。在這個(gè)例子中,最多可以有 3 個(gè)日志文件。如果創(chuàng)建了第 4 個(gè)文件,最舊的文件(第一個(gè)文件)將被刪除。
  • my-image:這是要運(yùn)行的 Docker 鏡像的名稱或ID。你需要將其替換為實(shí)際的鏡像名稱或ID。

syslog

示例:

docker run --log-driver=syslog --log-opt syslog-address=tcp://192.168.0.1:514 my-image
  • syslog-address:指定 syslog 服務(wù)器的地址和端口。
  • syslog-facility:指定 syslog 設(shè)施。

示例注釋如下:

docker run           # Docker命令,用于創(chuàng)建并運(yùn)行一個(gè)新的容器
--log-driver=syslog # 選項(xiàng),指定日志驅(qū)動(dòng)為syslog,將容器日志發(fā)送到syslog服務(wù)器
--log-opt syslog-address=tcp://192.168.0.1:514  # 選項(xiàng),設(shè)置syslog服務(wù)器的地址和端口
my-image            # 參數(shù),指定要使用的鏡像名稱或ID
  • docker run:這是 Docker 命令,用于從指定的鏡像創(chuàng)建并啟動(dòng)一個(gè)新的容器。
  • --log-driver=syslog:這個(gè)選項(xiàng)指定了容器的日志驅(qū)動(dòng)為 syslog,意味著 Docker 將容器的日志發(fā)送到配置的 syslog 服務(wù)器。
  • --log-opt syslog-address=tcp://192.168.0.1:514:這個(gè)選項(xiàng)用于指定 syslog 服務(wù)器的地址和端口。在這個(gè)例子中,Docker 將通過(guò) TCP 協(xié)議將日志發(fā)送到 IP 地址為 192.168.0.1、端口為 514 的 syslog 服務(wù)器。
  • my-image:這是要運(yùn)行的 Docker 鏡像的名稱或ID。你需要將其替換為實(shí)際的鏡像名稱或ID。

fluentd

示例:

docker run --log-driver=fluentd --log-opt fluentd-address=localhost:24224 --log-opt tag="my-container" my-image
  • fluentd-address:指定 Fluentd 服務(wù)器的地址和端口。
  • tag:指定日志的標(biāo)簽。

示例注釋如下:

docker run           # Docker命令,用于創(chuàng)建并啟動(dòng)一個(gè)新的容器
--log-driver=fluentd # 選項(xiàng),指定日志驅(qū)動(dòng)為fluentd,將容器日志發(fā)送到Fluentd服務(wù)器
--log-opt fluentd-address=localhost:24224  # 選項(xiàng),設(shè)置Fluentd服務(wù)器的地址和端口
--log-opt tag="my-container"    # 選項(xiàng),設(shè)置日志標(biāo)簽,用于在Fluentd中標(biāo)識(shí)日志來(lái)源
my-image            # 參數(shù),指定要使用的鏡像名稱或ID
  • docker run:這是 Docker 命令,用于從指定的鏡像創(chuàng)建并啟動(dòng)一個(gè)新的容器。
  • --log-driver=fluentd:這個(gè)選項(xiàng)指定了容器的日志驅(qū)動(dòng)為 fluentd,意味著 Docker 將容器的日志發(fā)送到配置的 Fluentd 服務(wù)器。
  • --log-opt fluentd-address=localhost:24224:這個(gè)選項(xiàng)用于指定 Fluentd 服務(wù)器的地址和端口。在這個(gè)例子中,Docker 將日志發(fā)送到本機(jī)(localhost)的 24224 端口。
  • --log-opt tag="my-container":這個(gè)選項(xiàng)用于設(shè)置日志的標(biāo)簽,tag 是 Fluentd 中用于區(qū)分不同日志來(lái)源的標(biāo)識(shí)。在這個(gè)例子中,所有來(lái)自該容器的日志都將帶有 my-container 這個(gè)標(biāo)簽。
  • my-image:這是要運(yùn)行的 Docker 鏡像的名稱或ID。你需要將其替換為實(shí)際的鏡像名稱或ID。

none

示例:

docker run --log-driver=none my-image
  • 禁用容器日志,不會(huì)輸出任何容器日志。

示例注釋如下:

docker run           # Docker命令,用于創(chuàng)建并啟動(dòng)一個(gè)新的容器
--log-driver=none   # 選項(xiàng),指定日志驅(qū)動(dòng)為none,禁用容器日志的輸出和存儲(chǔ)
my-image            # 參數(shù),指定要使用的鏡像名稱或ID
  • docker run:這是 Docker 命令,用于從指定的鏡像創(chuàng)建并啟動(dòng)一個(gè)新的容器。
  • --log-driver=none:這個(gè)選項(xiàng)指定了容器的日志驅(qū)動(dòng)為 none,意味著 Docker 不會(huì)為該容器創(chuàng)建或管理任何日志文件,容器的日志不會(huì)被輸出或存儲(chǔ)。
  • my-image:這是要運(yùn)行的 Docker 鏡像的名稱或ID。你需要將其替換為實(shí)際的鏡像名稱或ID。注釋如下:
docker run           # Dockers命令,用于創(chuàng)建并啟動(dòng)一個(gè)新的容器
--log-driver=none   # 選項(xiàng),指定日志驅(qū)動(dòng)為none,禁用容器日志的輸出和存儲(chǔ)
my-image            # 參數(shù),指定要使用的鏡像名稱或ID
  • docker run:這是 Docker 命令,用于從指定的鏡像創(chuàng)建并啟動(dòng)一個(gè)新的容器。
  • --log-driver=none:這個(gè)選項(xiàng)指定了容器的日志驅(qū)動(dòng)為 none,意味著 Docker 不會(huì)為該容器創(chuàng)建或管理任何日志文件,容器的日志不會(huì)被輸出或存儲(chǔ)。
  • my-image:這是要運(yùn)行的 Docker 鏡像的名稱或ID。你需要將其替換為實(shí)際的鏡像名稱或ID。

日志管理方案:ELK Stack

ELK Stack(Elasticsearch, Logstash, Kibana)是一個(gè)流行的開(kāi)源日志管理和分析工具集。

部署 ELK Stack使用 Docker Compose 部署 ELK Stack:

version: '3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0
    environment:
      - discovery.type=single-node
  logstash:
    image: docker.elastic.co/logstash/logstash:7.10.0
    volumes:
      - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf
    ports:
      - "5000:5000"
  kibana:
    image: docker.elastic.co/kibana/kibana:7.10.0
    ports:
      - "5601:5601"

配置注釋:

version: '3'  # 指定Docker Compose文件的版本,這里使用的是版本3

services:  # 定義服務(wù)的開(kāi)始,所有服務(wù)都將在這里列出

  elasticsearch:  # 定義一個(gè)名為elasticsearch的服務(wù)
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0  # 使用的Elasticsearch鏡像及其版本
    environment:  # 設(shè)置環(huán)境變量
      - discovery.type=single-node  # 配置Elasticsearch為單節(jié)點(diǎn)模式,適用于測(cè)試和開(kāi)發(fā)環(huán)境

  logstash:  # 定義一個(gè)名為logstash的服務(wù)
    image: docker.elastic.co/logstash/logstash:7.10.0  # 使用的Logstash鏡像及其版本
    volumes:  # 定義掛載卷,用于將配置文件從宿主機(jī)掛載到容器中
      - ./logstash.conf:/usr/share/logstash/pipeline/logstash.conf  # 將宿主機(jī)的logstash.conf文件掛載到容器的指定路徑
    ports:  # 定義端口映射
      - "5000:5000"  # 將容器的5000端口映射到宿主機(jī)的5000端口,用于Logstash的輸入

  kibana:  # 定義一個(gè)名為kibana的服務(wù)
    image: docker.elastic.co/kibana/kibana:7.10.0  # 使用的Kibana鏡像及其版本
    ports:  # 定義端口映射
      - "5601:5601"  # 將容器的5601端口映射到宿主機(jī)的5601端口,用于訪問(wèn)Kibana的Web界面

這個(gè)配置文件定義了三個(gè)服務(wù):Elasticsearch、Logstash 和 Kibana,每個(gè)服務(wù)都指定了使用的鏡像和版本。Elasticsearch 被配置為單節(jié)點(diǎn)模式,Logstash 通過(guò)掛載卷使用自定義的配置文件,而 Kibana 將容器的端口映射到宿主機(jī),以便可以通過(guò)瀏覽器訪問(wèn) Kibana 的 Web 界面。
2. 配置 Logstash在 Logstash 的配置文件中添加 Docker 日志的輸入源:

input {
  docker {
    host => "unix:///var/run/docker.sock"
    tags => ["docker", "logs"]
  }
}
output {
  elasticsearch {
    hosts => ["http://elasticsearch:9200"]
    index => "docker-logs-%{+YYYY.MM.dd}"
  }
}

下面是對(duì)該配置文件中每個(gè)部分的注釋:

input {
  docker {
    host => "unix:///var/run/docker.sock"  # 設(shè)置Docker輸入插件的host參數(shù),指向Docker的socket文件,用于直接從Docker守護(hù)進(jìn)程讀取日志
    tags => ["docker", "logs"]  # 設(shè)置標(biāo)簽,用于標(biāo)識(shí)這些日志是由Docker輸入插件處理的
  }
}

output {
  elasticsearch {
    hosts => ["http://elasticsearch:9200"]  # 設(shè)置輸出到Elasticsearch的地址和端口,這里假設(shè)Elasticsearch運(yùn)行在同一網(wǎng)絡(luò)中的默認(rèn)端口9200
    index => "docker-logs-%{+YYYY.MM.dd}"  # 設(shè)置輸出到Elasticsearch的索引名稱,使用日期格式化,每天創(chuàng)建一個(gè)新的索引
  }
}

input:定義輸入部分,指定 Logstash 從哪里獲取數(shù)據(jù)。

  • docker:指定使用 Docker 插件作為輸入源。
    • host => "unix:///var/run/docker.sock":指定 Docker 插件監(jiān)聽(tīng)的 Unix 套接字路徑,這里是 Docker 守護(hù)進(jìn)程的默認(rèn)路徑。
    • tags => ["docker", "logs"]:為輸入的事件添加標(biāo)簽,方便后續(xù)過(guò)濾和處理。

output:定義輸出部分,指定 Logstash 如何處理并輸出數(shù)據(jù)。

  • elasticsearch:指定輸出到 Elasticsearch。
    • hosts => ["http://elasticsearch:9200"]:指定 Elasticsearch 的 HTTP 地址和端口,這里假設(shè) Elasticsearch 服務(wù)運(yùn)行在默認(rèn)的 9200 端口上。
    • index => "docker-logs-%{+YYYY.MM.dd}":定義輸出到 Elasticsearch 的索引名稱,使用日期格式化,每天自動(dòng)創(chuàng)建一個(gè)新的索引,例如 docker-logs-2024.12.04。這里的 %{+YYYY.MM.dd} 是 Logstash 的日期格式化語(yǔ)法。
  • 查看日志通過(guò) Kibana 的 Web 界面,可以實(shí)時(shí)查看和分析 Docker 容器的日志。

總結(jié)

通過(guò)這些工具和方法,可以有效地管理和分析 Docker 容器的日志,提高系統(tǒng)的可觀測(cè)性和問(wèn)題排查的效率

到此這篇關(guān)于Docker 日志管理的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Docker 日志管理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker安裝mysql主從復(fù)制的實(shí)現(xiàn)步驟

    Docker安裝mysql主從復(fù)制的實(shí)現(xiàn)步驟

    MySQL主從復(fù)制是指數(shù)據(jù)可以從一個(gè)MySQL數(shù)據(jù)庫(kù)服務(wù)器主節(jié)點(diǎn)復(fù)制到一個(gè)或多個(gè)從節(jié)點(diǎn),本文主要介紹了Docker安裝mysql主從復(fù)制的實(shí)現(xiàn)步驟,感興趣的可以了解一下
    2024-03-03
  • mysql8.4.0實(shí)現(xiàn)主從復(fù)制部署

    mysql8.4.0實(shí)現(xiàn)主從復(fù)制部署

    主從復(fù)制是 MySQL 中一種用于實(shí)現(xiàn)數(shù)據(jù)冗余、提高可用性和性能的重要機(jī)制,本文主要介紹了mysql8.4.0實(shí)現(xiàn)主從復(fù)制部署,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • docker一鍵安裝wordpress的方法步驟

    docker一鍵安裝wordpress的方法步驟

    這篇文章主要介紹了docker一鍵安裝wordpress的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • Docker的基本概念、安裝步驟以及一些簡(jiǎn)單的用法

    Docker的基本概念、安裝步驟以及一些簡(jiǎn)單的用法

    Docker 是一種開(kāi)源的容器化平臺(tái),允許開(kāi)發(fā)者打包應(yīng)用及其依賴項(xiàng)到一個(gè)可移植的容器中,容器可以在任何支持Docker的環(huán)境中運(yùn)行,這使得應(yīng)用的部署和管理變得更加簡(jiǎn)單和高效,本文介紹Docker的基本概念、安裝步驟以及一些簡(jiǎn)單的用法,感興趣的朋友一起看看吧
    2024-11-11
  • Linux平臺(tái)搭建docker環(huán)境并簡(jiǎn)單使用示例

    Linux平臺(tái)搭建docker環(huán)境并簡(jiǎn)單使用示例

    這篇文章主要介紹了Linux平臺(tái)搭建docker環(huán)境及簡(jiǎn)單使用方法,需要的朋友參考下吧
    2017-01-01
  • Docker 環(huán)境配置以及問(wèn)題解決方案

    Docker 環(huán)境配置以及問(wèn)題解決方案

    這篇文章主要介紹了Docker 環(huán)境配置以及問(wèn)題解決方案的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 使用Docker完成前端部署詳細(xì)圖文教程

    使用Docker完成前端部署詳細(xì)圖文教程

    這篇文章主要給大家介紹了關(guān)于使用Docker完成前端部署的相關(guān)資料,Docker變得越來(lái)越流行,它可以輕便靈活地隔離環(huán)境,進(jìn)行擴(kuò)容,運(yùn)維管理,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • Docker中Harbor企業(yè)級(jí)鏡像倉(cāng)庫(kù)的搭建與使用

    Docker中Harbor企業(yè)級(jí)鏡像倉(cāng)庫(kù)的搭建與使用

    本文介紹了Harbor企業(yè)級(jí)鏡像倉(cāng)庫(kù)的搭建與使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-12-12
  • 使用docker搭建gitlab詳解

    使用docker搭建gitlab詳解

    本篇文章主要介紹了使用docker搭建gitlab詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • Docker安裝mysql教程以及解決mysqld: Can‘t read dir of ‘/etc/mysql/conf.d/‘問(wèn)題

    Docker安裝mysql教程以及解決mysqld: Can‘t read dir&nbs

    本文詳細(xì)介紹了如何通過(guò)Docker來(lái)安裝和配置MySQL數(shù)據(jù)庫(kù),包括拉取MySQL鏡像、啟動(dòng)MySQL容器、配置MySQL、解決常見(jiàn)錯(cuò)誤等步驟,提供了詳盡的命令和參數(shù)說(shuō)明,幫助用戶順利完成MySQL的安裝和配置,文中還提到了如何處理MySQL容器啟動(dòng)時(shí)遇到的“無(wú)法讀取目錄”
    2024-10-10

最新評(píng)論