HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    docker查看日志的命令(docker-compose 查看日志)

    發(fā)布時(shí)間:2023-04-08 18:40:52     稿源: 創(chuàng)意嶺    閱讀: 82        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于docker查看日志的命令的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    docker查看日志的命令(docker-compose 查看日志)

    一、docker常用命令

    1、 service docker start // 啟動(dòng)docker

    2、 docker images // 查看docker所安裝的鏡像

    3、 docker search [name] 查詢某個(gè)鏡像 例如查詢mysql docker search mysql

    4、 docker pull [name] 拉取某個(gè)鏡像 例如mysql docker pull mysql

    5、 docker pull [name] [:tag] tag版本號(hào) 如果不寫默認(rèn)拉取最新的版本

    例如: docker pull mysql:5.7

    6、 docker rmi [imgaeId] 刪除命令,imageId是鏡像id

    2.1 新建一個(gè)新的容器 docker pull centos

    2.2 docker run [可選參數(shù)] image名字

    參數(shù)說明

    --name="Name" 給容器命名

    -d 后臺(tái)方式運(yùn)行

    -p [主機(jī)端口]:[容器端口] 指定容器的端口 例如啟動(dòng)tomcat 命令: docker run -p 8081:8080 tomcat 解釋:8081是對外訪問(服務(wù)器)的端口。8080是docker里面的tomcat端口. tomcat是鏡像拉取下來后的名字. 例:若別人訪問。IP+8081端口才能訪問到tomcat啟動(dòng)的項(xiàng)目

    -P 大寫P是隨機(jī)指定端口

    -it 與容器交互,就是進(jìn)入到容器里面

    命令: docker run -it [鏡像名稱] /bin/bash 例子: docker run -it centos /bin/bash

    docker ps 查看運(yùn)行中的容器

    docker ps -q 只查詢運(yùn)行容器的編號(hào),一般與下面-a合并使用, docker ps -aq

    docker ps -a 查看曾經(jīng)運(yùn)行過的容器

    docker ps -a -n=1 加上-n可以指定查詢最近幾個(gè)運(yùn)行的容器、

    Ctrl+p+q 這樣退出就不會(huì)停止容器

    docker rm -f [容器id] 指定刪除某個(gè)運(yùn)行的容器

    docker rm -f $(docker ps -aq) 刪除全部運(yùn)行的容器

    docker start [容器id] 啟動(dòng)容器

    docker restart [容器id] 重啟容器

    docker stop [容器id] 停止容器

    docker kill [容器id] 強(qiáng)制停止容器

    docker run -d [鏡像名] 例如: docker run -d centos

    但是有問題, docker ps 查詢不到運(yùn)行的容器

    原因:docker容器用后臺(tái)運(yùn)行,就必須要有一個(gè)前臺(tái)進(jìn)程,docker發(fā)現(xiàn)沒有應(yīng)用,所以就自動(dòng)停止

    docker logs -tf --tail 10 [容器id]

    t的意思是時(shí)間戳,f保留日志打印窗口,tail持續(xù)打印,10打印最后10條

    docker top [容器id]

    docker inspect [容器id]

    方式一: docker exec -it [containt_id] /bin/bash // 進(jìn)入該鏡像內(nèi)部

    docker cp [容器id]:[容器路徑] [主機(jī)路徑]

    二、Docker實(shí)踐之鏡像啟動(dòng)及常用命令

    前面簡單的介紹了如何在Linux中安裝 Docker ,這節(jié)內(nèi)容,我們學(xué)習(xí)Docker鏡像啟動(dòng)

    我們Docker啟動(dòng)鏡像從哪里來呢?鏡像由我們自己或者他人構(gòu)建,構(gòu)建好的鏡像可以直接放在本地或者上傳到遠(yuǎn)程鏡像倉庫。當(dāng)我們運(yùn)行一個(gè)Docker鏡像時(shí),會(huì)先在本地查找是否存在所要運(yùn)行的鏡像,如果沒有則會(huì)去遠(yuǎn)程鏡像倉庫拉取,默認(rèn)為官方的鏡像倉庫,當(dāng)然,我們也可以改為自己的私有鏡像倉庫。接下來,我們先了解幾個(gè)簡單的命令。

    我們直接在安裝好Docker的主機(jī)上執(zhí)行 docker run nginx

    我們從運(yùn)行日志可以看到這樣的字眼:

    docker發(fā)現(xiàn)本地不存在nginx的鏡像文件,便直接去倉庫中查找下載并運(yùn)行,因?yàn)槲覀儧]有讓鏡像后臺(tái)運(yùn)行,所以這次運(yùn)行起來的容器會(huì)隨著這次遠(yuǎn)程連接斷開而停止。當(dāng)我按下 ctrl+c 時(shí),容器便會(huì)停止

    如果要讓容器后臺(tái)運(yùn)行,則需要在啟動(dòng)時(shí)加 -d 這個(gè)參數(shù),

    我們來看一下當(dāng)前運(yùn)行中的容器

    可以看到,我們的nginx是啟動(dòng)起來了,但是,我們并不能訪問它。容器有自己的一套虛擬系統(tǒng),如:網(wǎng)絡(luò)、文件。如果我們需要訪問,則需要給容器和宿主機(jī)做一個(gè)映射,讓宿主機(jī)和容器能夠交互。這里,我們就給nginx增加端口和配置文件映射。我為了省事,就直接把容器中的配置文件復(fù)制出來用

    接下來,我們便來建立這個(gè)映射關(guān)系

    來看看容器是否啟動(dòng)成功

    這時(shí)候,我們便能訪問我們的nginx服務(wù),

    前面已經(jīng)說到,容器有自己的虛擬系統(tǒng),如果需要持久化的數(shù)據(jù)不映射到宿主機(jī)上,那么當(dāng)容器銷毀時(shí),數(shù)據(jù)也會(huì)隨之丟失,所以,我們在用容器運(yùn)行時(shí),一定要做好數(shù)據(jù)的保存方式。

    在前面,我們列出了幾個(gè)常用的Docker命令,這里,我們把這幾個(gè)常用命令稍微講解一下,

    ps主要是查詢正常運(yùn)行的容器

    docker ps 是當(dāng)前正在運(yùn)行的容器

    這里面的 CONTAINER ID 很重要,后面我們的很多操作都需要基于這個(gè) CONTAINER ID 或者 NAMES 。

    docker ps -a 則是列出運(yùn)行中和停止中的所有容器,

    這幾個(gè)參數(shù)這是啟動(dòng)/停止/重啟/刪除容器的參數(shù),如: docker restart 5ae0319e1795 ,如果要?jiǎng)h除容器,必須要先停止,否則會(huì)提示

    docker run [OPTIONS] IMAGE [COMMAND] [ARG…],它的運(yùn)行參數(shù)就比較復(fù)雜了,

    這里還是只介紹幾個(gè)常用的命令參數(shù)吧,

    運(yùn)行示例 docker run -d --name nginx-cc -v /root/nginx/:/etc/nginx/ -p 9999:80 -m 256M nginx

    cp命令主要是用于宿主機(jī)和容器間的文件復(fù)制,一般格式如下:

    docker cp [OPTIONS] 容器名/容器Id:容器文件路徑 宿主機(jī)文件路徑 從容器復(fù)制到宿主機(jī)

    docker cp [OPTIONS] 宿主機(jī)文件路徑 容器名/容器Id:容器文件路徑 從宿主機(jī)復(fù)制到容器中

    inspect主要是查看容器或者鏡像元數(shù)據(jù),如:

    從返回的信息中,我們可以得到,啟動(dòng)時(shí)所設(shè)置的啟動(dòng)參數(shù)。如:

    如果,那天我們忘記之前容器啟動(dòng)的參數(shù)時(shí),便可以通過 inspect 來幫我們找回來。

    logs主要是查詢docker容器的運(yùn)行日志,如:

    三、Docker命令-docker run

    原文

    docker進(jìn)程運(yùn)行與獨(dú)立的容器中,而容器是宿主機(jī)的一個(gè)進(jìn)程。宿主機(jī)可以使本地的也可以是遠(yuǎn)程的。每當(dāng)執(zhí)行 docker run 之后,容器進(jìn)程式獨(dú)立運(yùn)行的,他有自己的文件系統(tǒng)、網(wǎng)絡(luò)以及與主機(jī)隔離的進(jìn)程🌲。

    這里將介紹如何使用 docker run 運(yùn)行容器以及容器資源。

    一個(gè) docker run 命令使用如下:

    docker run 命令必須指定一個(gè)容器鏡像,鏡像開發(fā)者可以定義鏡像的一些默認(rèn)值:

    開發(fā)者可以通過 docker run [options] 添加或者修改鏡像的默認(rèn)設(shè)置。此外,開發(fā)者幾乎可以完全覆蓋掉容器運(yùn)行時(shí)的默認(rèn)設(shè)置。正因?yàn)?docker run 能修改鏡像和容器的默認(rèn)設(shè)置,所以他的 [options] 可選項(xiàng)要比其他任何docker命令都要多。

    要知道更多的 [options] ,移步: options type

    最好只是懂得 docker run 命令的人去使用這些選項(xiàng)!

    當(dāng)你運(yùn)行Docker容器的時(shí)候你需要決定是要在后臺(tái)運(yùn)行還是默認(rèn)前臺(tái)運(yùn)行,當(dāng)你選擇后臺(tái)運(yùn)行時(shí)會(huì)在命令執(zhí)行后打印出最新運(yùn)行的容器ID。

    想要讓你的容器以后臺(tái)方式運(yùn)行只需要在使用參數(shù) -d=true 或者 -d 即可。docker設(shè)計(jì)的默認(rèn)情況下,如果你的容器以后臺(tái)方式運(yùn)行,只有在父進(jìn)程即docker進(jìn)程退出的時(shí)候才會(huì)去把容器退出,除非你使用了 --rm 選項(xiàng)。如果你在運(yùn)行容器時(shí)將 -d 和 --rm 兩個(gè)選項(xiàng)一起使用,那么容器會(huì)在退出或者后臺(tái)進(jìn)程停止的的時(shí)候自動(dòng)移除掉(只要一個(gè)情況便會(huì)自動(dòng)移除鏡像)。

    dokcer容器后臺(tái)運(yùn)行是不能通過 service x start 來啟動(dòng)的,比如想啟動(dòng)一個(gè)后臺(tái)運(yùn)行的 nginx 服務(wù):

    這樣雖然啟動(dòng)了容器內(nèi)的 nginx 服務(wù),但是是不可用的,因?yàn)檫@種方式違背了后臺(tái)運(yùn)行容器的使用規(guī)范。nginx服務(wù)雖然啟動(dòng)了,但是他的所屬容器服務(wù)已經(jīng)停了,導(dǎo)致nginx服務(wù)是不可用的。如果想啟動(dòng)一個(gè)nginx服務(wù)請使用如下命令:

    當(dāng)容器后臺(tái)運(yùn)行之后便不回響應(yīng)命令行的的相關(guān)操作,可以通過網(wǎng)絡(luò)連接或者文件掛載方式查看容器運(yùn)行的輸入輸出日志??梢酝ㄟ^ docker attach 來操作。

    在不指定 -d 的情況下,容器默認(rèn)是前臺(tái)運(yùn)行的,可以看到容器運(yùn)行時(shí)候的輸入輸出以及錯(cuò)誤信息日志。容器甚至還可以模擬終端輸入輸出(TTY),配置項(xiàng)如下:

    如果你沒有指定 -a 參數(shù),docker默認(rèn)會(huì)指定 stdout 和 stderr ,你也可以任意指定你想要的終端顯示信息,例如:

    為了開啟容器終端,你必須指定參數(shù) -i -t 。通常情況下 -i -t 會(huì)一起使用 -it ,注意如果容器需要從一個(gè)pipe接收輸入?yún)?shù)時(shí)是不能使用 -t 的,例如:

    定義一個(gè)容器ID有三種方式:

    UUID是由docker的后臺(tái)進(jìn)程創(chuàng)建的。如果你沒有指定容器名稱,那么docker會(huì)默認(rèn)生成一個(gè)隨機(jī)字符串名字。如果你指定了容器的名字,不管是選擇前臺(tái)運(yùn)行還是后臺(tái)運(yùn)行甚至docker網(wǎng)絡(luò)配置的時(shí)候,你都可以在通過名字 name 來引用該容器。

    為了方便管理,你可以選擇讓docker將容器ID寫入到一個(gè)文件中。這個(gè)功能類似于一些程序會(huì)將進(jìn)程PID寫入到文件中,例如:

    雖然給一個(gè)容器指定ID不是嚴(yán)格的要求規(guī)范,但是你可以在啟動(dòng)容器的時(shí)候指定容器的標(biāo)簽 iamge:tag ,例如:

    使用V2或之后的鏡像格式制作的鏡像文件具有摘要內(nèi)存尋址功能。只要生成鏡像的參數(shù)和方式?jīng)]有改變,那么這個(gè)鏡像的摘要是可預(yù)測和可引用的。

    例如下面這個(gè)運(yùn)行一個(gè)從 alpine 拉取的鏡像:

    鏡像摘要: sha256:9cacb71397b640eca97488cf08582ae4e4068513101088e9f96c9814bfda95e0

    ...

    果然 docker run 是參數(shù)最多的命令,篇幅太多了,先翻譯到這里,大致使用已經(jīng)涵蓋了,先去翻譯接下來的命令了。

    更多信息請參考 原文

    更多參數(shù)說明:

    四、Java docker日志放哪了

    Docker的日志分兩類,一類是 Docker引擎的日志;另一類是容器日志。容器的日志 則可以通過 docker logs 命令來訪問,而且可以像 tail -f 一樣,使用 docker logs -f 來實(shí)時(shí)查看。如果使用 Docker Compose,則可以通過 docker-compose logs <服務(wù)名> 來查看。

    以上就是關(guān)于docker查看日志的命令相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。


    推薦閱讀:

    adobe全家桶(adobe全家桶下載)

    免費(fèi)windows7云主機(jī)下載(免費(fèi)windows10云主機(jī))

    Dou訂單為何刪除不了(抖音訂單為什么刪除不了)

    如何電商代運(yùn)營(如何電商代運(yùn)營賺錢)

    杭州體育中考實(shí)心球評(píng)分標(biāo)準(zhǔn)(杭州市體育中考實(shí)心球標(biāo)準(zhǔn))