Docker是一個開源的應用容器引擎,將應用程序和服務打包到容器中以進行簡單而可移植的部署。dockerinspect是Docker提供的命令之一,它可以幫助用戶查看某個容器的配置細節,包括容器的文件系統、網路、進程、變數和配置等,為運維人員提供了很多方便。
一、容器架構
dockerinspect命令中的architecture用來查看容器的架構信息。架構信息可以告訴我們容器運行的硬體平台和操作系統信息。在Docker中,支持的架構類型有很多,常見的有x86_64(AMD64)和armv7l(ARM)。使用方法如下:
docker inspect -f '{{.Architecture}}' container_name_or_id
例如,如果我們想獲取容器nginx的架構信息:
docker inspect -f '{{.Architecture}}' nginx
輸出結果為:amd64。
除了架構信息,還可以通過其他命令查看容器中的操作系統、內核等細節,如下:
docker exec container_name_or_id cat /etc/os-release
docker exec container_name_or_id uname -r
二、容器網路
dockerinspect命令中的networks用來查看容器的網路信息。Docker可以為容器提供不同的網路,例如默認的bridge網橋、host主機模式、自定義網路等。使用方法如下:
docker inspect -f '{{json .NetworkSettings.Networks}}' container_name_or_id
例如,我們想查看容器nginx的網路信息:
docker inspect -f '{{json .NetworkSettings.Networks}}' nginx
輸出結果為:
{
"my-net": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"0b089ead4b84"
],
"NetworkID": "22c4cd9cc23adda4dcf4fabed91472bc6b65a1ee172b523ea2d975ef06e301c9",
"EndpointID": "ad67698eedf99fd3d80be90a93cb23bb642edfdd4a33c9d1898c5f1bc9916e3e",
"Gateway": "172.19.0.1",
"IPAddress": "172.19.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:13:00:02",
"DriverOpts": null
},
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"nginx"
],
"NetworkID": "465a63b39da7abd6c8254829532715f232d2f069407a50d39c5ba0a55bb76ad7",
"EndpointID": "305455681f1435f44d062b84b7f7d16744bc10e3619a27baae9a7b79870b20d9",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:02",
"DriverOpts": null
},
"host": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"nginx"
],
"NetworkID": "6762082c6d7c41fc5753cef837d64bcf60a684f650e907907a754b79c0c7e87e",
"EndpointID": "17e21932d1866a251d8af7545eccf5523550744f7cb82a2f24fabd7b4353f9f3",
"Gateway": "",
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "",
"DriverOpts": null
}
}
輸出結果表示有三個網路:my-net、bridge和host。每個網路都有對應的IP地址、網關、驅動選項等配置信息。
三、容器進程
dockerinspect命令中的processes用來查看容器中的進程信息。進程信息可以告訴我們容器中哪些進程正在運行、運行的用戶、進程的狀態和資源使用等。使用方法如下:
docker inspect -f '{{json .State.Processes}}' container_name_or_id
例如,我們想查看容器nginx中進程的信息:
docker inspect -f '{{json .State.Processes}}' nginx
輸出結果為:
[
[
1,
"nginx",
"0:accept",
"tcp",
"0.0.0.0:80",
"0.0.0.0:*",
"off"
],
[
7,
"nginx",
"1:access",
"http",
"",
"",
"off"
]
]
輸出結果表示在容器中有兩個進程,一個是主進程listen 80埠,另一個是access_log進程用來記錄訪問日誌。
四、容器變數和配置
dockerinspect還可以用來查看容器的變數和配置信息。例如,我們可以查看容器中環境變數的值:
docker inspect --format='{{range .Config.Env}} {{println .}} {{end}}' container_name_or_id
例如,我們想查看容器nginx中環境變數的值:
docker inspect --format='{{range .Config.Env}} {{println .}} {{end}}' nginx
輸出結果為:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NGINX_VERSION=1.21.3
NJS_VERSION=0.6.1
PKG_RELEASE=1~buster
除了環境變數,還可以查看容器中其他配置文件和卷的細節信息,如下:
docker inspect -f '{{json .Mounts}}' container_name_or_id
docker inspect -f '{{json .Config.Volumes}}' container_name_or_id
五、總結
dockerinspect是一個非常有用的命令,可以幫助我們快速查看和調試Docker容器中的細節信息。本文介紹了dockerinspect命令的幾個常用選項,包括容器架構、容器網路、容器進程和容器變數和配置等,希望對大家有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/228996.html