-
當前位置:首頁 > 創(chuàng)意學院 > 技術 > 專題列表 > 正文
docker查看日志的命令(docker-compose 查看日志)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于docker查看日志的命令的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、docker常用命令
1、 service docker start // 啟動docker
2、 docker images // 查看docker所安裝的鏡像
3、 docker search [name] 查詢某個鏡像 例如查詢mysql docker search mysql
4、 docker pull [name] 拉取某個鏡像 例如mysql docker pull mysql
5、 docker pull [name] [:tag] tag版本號 如果不寫默認拉取最新的版本
例如: docker pull mysql:5.7
6、 docker rmi [imgaeId] 刪除命令,imageId是鏡像id
2.1 新建一個新的容器 docker pull centos
2.2 docker run [可選參數(shù)] image名字
參數(shù)說明
--name="Name" 給容器命名
-d 后臺方式運行
-p [主機端口]:[容器端口] 指定容器的端口 例如啟動tomcat 命令: docker run -p 8081:8080 tomcat 解釋:8081是對外訪問(服務器)的端口。8080是docker里面的tomcat端口. tomcat是鏡像拉取下來后的名字. 例:若別人訪問。IP+8081端口才能訪問到tomcat啟動的項目
-P 大寫P是隨機指定端口
-it 與容器交互,就是進入到容器里面
命令: docker run -it [鏡像名稱] /bin/bash 例子: docker run -it centos /bin/bash
docker ps 查看運行中的容器
docker ps -q 只查詢運行容器的編號,一般與下面-a合并使用, docker ps -aq
docker ps -a 查看曾經(jīng)運行過的容器
docker ps -a -n=1 加上-n可以指定查詢最近幾個運行的容器、
Ctrl+p+q 這樣退出就不會停止容器
docker rm -f [容器id] 指定刪除某個運行的容器
docker rm -f $(docker ps -aq) 刪除全部運行的容器
docker start [容器id] 啟動容器
docker restart [容器id] 重啟容器
docker stop [容器id] 停止容器
docker kill [容器id] 強制停止容器
docker run -d [鏡像名] 例如: docker run -d centos
但是有問題, docker ps 查詢不到運行的容器
原因:docker容器用后臺運行,就必須要有一個前臺進程,docker發(fā)現(xiàn)沒有應用,所以就自動停止
docker logs -tf --tail 10 [容器id]
t的意思是時間戳,f保留日志打印窗口,tail持續(xù)打印,10打印最后10條
docker top [容器id]
docker inspect [容器id]
方式一: docker exec -it [containt_id] /bin/bash // 進入該鏡像內(nèi)部
docker cp [容器id]:[容器路徑] [主機路徑]
二、Docker實踐之鏡像啟動及常用命令
前面簡單的介紹了如何在Linux中安裝 Docker ,這節(jié)內(nèi)容,我們學習Docker鏡像啟動
我們Docker啟動鏡像從哪里來呢?鏡像由我們自己或者他人構建,構建好的鏡像可以直接放在本地或者上傳到遠程鏡像倉庫。當我們運行一個Docker鏡像時,會先在本地查找是否存在所要運行的鏡像,如果沒有則會去遠程鏡像倉庫拉取,默認為官方的鏡像倉庫,當然,我們也可以改為自己的私有鏡像倉庫。接下來,我們先了解幾個簡單的命令。
我們直接在安裝好Docker的主機上執(zhí)行 docker run nginx
我們從運行日志可以看到這樣的字眼:
docker發(fā)現(xiàn)本地不存在nginx的鏡像文件,便直接去倉庫中查找下載并運行,因為我們沒有讓鏡像后臺運行,所以這次運行起來的容器會隨著這次遠程連接斷開而停止。當我按下 ctrl+c 時,容器便會停止
如果要讓容器后臺運行,則需要在啟動時加 -d 這個參數(shù),
我們來看一下當前運行中的容器
可以看到,我們的nginx是啟動起來了,但是,我們并不能訪問它。容器有自己的一套虛擬系統(tǒng),如:網(wǎng)絡、文件。如果我們需要訪問,則需要給容器和宿主機做一個映射,讓宿主機和容器能夠交互。這里,我們就給nginx增加端口和配置文件映射。我為了省事,就直接把容器中的配置文件復制出來用
接下來,我們便來建立這個映射關系
來看看容器是否啟動成功
這時候,我們便能訪問我們的nginx服務,
前面已經(jīng)說到,容器有自己的虛擬系統(tǒng),如果需要持久化的數(shù)據(jù)不映射到宿主機上,那么當容器銷毀時,數(shù)據(jù)也會隨之丟失,所以,我們在用容器運行時,一定要做好數(shù)據(jù)的保存方式。
在前面,我們列出了幾個常用的Docker命令,這里,我們把這幾個常用命令稍微講解一下,
ps主要是查詢正常運行的容器
docker ps 是當前正在運行的容器
這里面的 CONTAINER ID 很重要,后面我們的很多操作都需要基于這個 CONTAINER ID 或者 NAMES 。
docker ps -a 則是列出運行中和停止中的所有容器,
這幾個參數(shù)這是啟動/停止/重啟/刪除容器的參數(shù),如: docker restart 5ae0319e1795 ,如果要刪除容器,必須要先停止,否則會提示
docker run [OPTIONS] IMAGE [COMMAND] [ARG…],它的運行參數(shù)就比較復雜了,
這里還是只介紹幾個常用的命令參數(shù)吧,
運行示例 docker run -d --name nginx-cc -v /root/nginx/:/etc/nginx/ -p 9999:80 -m 256M nginx
cp命令主要是用于宿主機和容器間的文件復制,一般格式如下:
docker cp [OPTIONS] 容器名/容器Id:容器文件路徑 宿主機文件路徑 從容器復制到宿主機
docker cp [OPTIONS] 宿主機文件路徑 容器名/容器Id:容器文件路徑 從宿主機復制到容器中
inspect主要是查看容器或者鏡像元數(shù)據(jù),如:
從返回的信息中,我們可以得到,啟動時所設置的啟動參數(shù)。如:
如果,那天我們忘記之前容器啟動的參數(shù)時,便可以通過 inspect 來幫我們找回來。
logs主要是查詢docker容器的運行日志,如:
三、Docker命令-docker run
原文
docker進程運行與獨立的容器中,而容器是宿主機的一個進程。宿主機可以使本地的也可以是遠程的。每當執(zhí)行 docker run 之后,容器進程式獨立運行的,他有自己的文件系統(tǒng)、網(wǎng)絡以及與主機隔離的進程🌲。
這里將介紹如何使用 docker run 運行容器以及容器資源。
一個 docker run 命令使用如下:
docker run 命令必須指定一個容器鏡像,鏡像開發(fā)者可以定義鏡像的一些默認值:
開發(fā)者可以通過 docker run [options] 添加或者修改鏡像的默認設置。此外,開發(fā)者幾乎可以完全覆蓋掉容器運行時的默認設置。正因為 docker run 能修改鏡像和容器的默認設置,所以他的 [options] 可選項要比其他任何docker命令都要多。
要知道更多的 [options] ,移步: options type
最好只是懂得 docker run 命令的人去使用這些選項!
當你運行Docker容器的時候你需要決定是要在后臺運行還是默認前臺運行,當你選擇后臺運行時會在命令執(zhí)行后打印出最新運行的容器ID。
想要讓你的容器以后臺方式運行只需要在使用參數(shù) -d=true 或者 -d 即可。docker設計的默認情況下,如果你的容器以后臺方式運行,只有在父進程即docker進程退出的時候才會去把容器退出,除非你使用了 --rm 選項。如果你在運行容器時將 -d 和 --rm 兩個選項一起使用,那么容器會在退出或者后臺進程停止的的時候自動移除掉(只要一個情況便會自動移除鏡像)。
dokcer容器后臺運行是不能通過 service x start 來啟動的,比如想啟動一個后臺運行的 nginx 服務:
這樣雖然啟動了容器內(nèi)的 nginx 服務,但是是不可用的,因為這種方式違背了后臺運行容器的使用規(guī)范。nginx服務雖然啟動了,但是他的所屬容器服務已經(jīng)停了,導致nginx服務是不可用的。如果想啟動一個nginx服務請使用如下命令:
當容器后臺運行之后便不回響應命令行的的相關操作,可以通過網(wǎng)絡連接或者文件掛載方式查看容器運行的輸入輸出日志??梢酝ㄟ^ docker attach 來操作。
在不指定 -d 的情況下,容器默認是前臺運行的,可以看到容器運行時候的輸入輸出以及錯誤信息日志。容器甚至還可以模擬終端輸入輸出(TTY),配置項如下:
如果你沒有指定 -a 參數(shù),docker默認會指定 stdout 和 stderr ,你也可以任意指定你想要的終端顯示信息,例如:
為了開啟容器終端,你必須指定參數(shù) -i -t 。通常情況下 -i -t 會一起使用 -it ,注意如果容器需要從一個pipe接收輸入?yún)?shù)時是不能使用 -t 的,例如:
定義一個容器ID有三種方式:
UUID是由docker的后臺進程創(chuàng)建的。如果你沒有指定容器名稱,那么docker會默認生成一個隨機字符串名字。如果你指定了容器的名字,不管是選擇前臺運行還是后臺運行甚至docker網(wǎng)絡配置的時候,你都可以在通過名字 name 來引用該容器。
為了方便管理,你可以選擇讓docker將容器ID寫入到一個文件中。這個功能類似于一些程序會將進程PID寫入到文件中,例如:
雖然給一個容器指定ID不是嚴格的要求規(guī)范,但是你可以在啟動容器的時候指定容器的標簽 iamge:tag ,例如:
使用V2或之后的鏡像格式制作的鏡像文件具有摘要內(nèi)存尋址功能。只要生成鏡像的參數(shù)和方式?jīng)]有改變,那么這個鏡像的摘要是可預測和可引用的。
例如下面這個運行一個從 alpine 拉取的鏡像:
鏡像摘要: sha256:9cacb71397b640eca97488cf08582ae4e4068513101088e9f96c9814bfda95e0
...
果然 docker run 是參數(shù)最多的命令,篇幅太多了,先翻譯到這里,大致使用已經(jīng)涵蓋了,先去翻譯接下來的命令了。
更多信息請參考 原文
更多參數(shù)說明:
四、Java docker日志放哪了
Docker的日志分兩類,一類是 Docker引擎的日志;另一類是容器日志。容器的日志 則可以通過 docker logs 命令來訪問,而且可以像 tail -f 一樣,使用 docker logs -f 來實時查看。如果使用 Docker Compose,則可以通過 docker-compose logs <服務名> 來查看。
以上就是關于docker查看日志的命令相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
免費windows7云主機下載(免費windows10云主機)