要查看 docker 的版本信息,最常用的方法是使用 docker version 命令。1. 使用 docker version 可以查看客戶端和服務(wù)端的詳細(xì)信息,包括版本號(hào)、api 版本、go 版本、構(gòu)建時(shí)間和操作系統(tǒng)架構(gòu)等;2. 如果只關(guān)心簡要版本號(hào),可以使用 docker –version 命令,輸出簡潔明了;3. 雖然 docker version 不支持直接輸出為 json 格式,但可以通過結(jié)合文本處理命令(如 grep 和 awk)提取特定字段,方便自動(dòng)化腳本中使用;4. 若發(fā)現(xiàn)客戶端與服務(wù)端版本不一致,通常是因?yàn)槲赐礁滤?,盡管 docker 具備一定兼容性,但在出現(xiàn)問題時(shí)建議統(tǒng)一版本以確保穩(wěn)定性。
查看 Docker 的版本信息非常簡單,最常用的方法就是使用 docker version 命令。這個(gè)命令不僅能告訴你當(dāng)前安裝的 Docker 版本號(hào),還能展示客戶端和服務(wù)器端的詳細(xì)信息。
1. 使用 docker version 查看基本信息
在終端或命令行中輸入:
docker version
這條命令會(huì)輸出兩部分內(nèi)容:Client(客戶端) 和 Server(服務(wù)端) 的信息。
輸出示例如下(簡化版):
Client: Version: 24.0.0 API version: 1.43 Go version: go1.20.2 git commit: abcdef1 Built: Tue Mar 14 2023 OS/Arch: Linux/amd64 Server: Engine: Version: 24.0.0 API version: 1.43 (minimum version 1.12) Go version: go1.20.2 Git commit: abcdef1 Built: Tue Mar 14 2023 OS/Arch: linux/amd64 Experimental: false
- Version:Docker 引擎的具體版本號(hào)。
- API version:Docker 提供的 API 接口版本,很多工具依賴這個(gè)接口通信。
- Go version:Docker 是用 Go 編寫的,這里顯示的是編譯時(shí)使用的 Go 版本。
- Built:構(gòu)建時(shí)間,有助于判斷是否是最新安裝或更新過的版本。
- OS/Arch:運(yùn)行的操作系統(tǒng)和架構(gòu),比如 Linux 上的 amd64。
如果你只關(guān)心版本號(hào),可以繼續(xù)往下看更簡化的寫法。
2. 只查看簡要版本號(hào)
如果你只需要看到版本號(hào),不需要其他細(xì)節(jié),可以用:
docker --version
輸出類似這樣:
Docker version 24.0.0, build abcdef1
這個(gè)命令適合在腳本中使用,或者當(dāng)你只想快速確認(rèn) Docker 是否已安裝、版本大致是多少的時(shí)候很有用。
3. 輸出格式可以自定義嗎?
雖然 docker version 不支持像 json 格式那樣直接轉(zhuǎn)換輸出內(nèi)容,但你可以結(jié)合一些文本處理命令來提取特定字段。例如,想只獲取 Client 的版本號(hào):
docker version | grep -A 1 "Client" | grep "Version" | awk '{print $2}'
輸出結(jié)果就是:
24.0.0
這種做法在寫自動(dòng)化腳本、做版本檢查時(shí)比較實(shí)用。
4. 常見問題:為什么 Client 和 Server 版本不一樣?
有時(shí)候你會(huì)發(fā)現(xiàn) Client 和 Server 的版本不一致,比如一個(gè)是 24.0.0,另一個(gè)是 23.0.1。這通常是因?yàn)槟闶謩?dòng)升級(jí)了客戶端或服務(wù)端的一部分,而另一部分沒有同步更新。
這種情況一般不會(huì)導(dǎo)致嚴(yán)重問題,因?yàn)?Docker 具有一定的向后兼容性,但如果遇到奇怪的問題,建議統(tǒng)一升級(jí)到相同版本。
基本上就這些。用 docker version 看版本是個(gè)小操作,但能幫你確認(rèn)環(huán)境狀態(tài)、排查問題,特別是在多人協(xié)作或部署環(huán)境中特別有用。