三、docker映象
docker 映象是 docker 中三大概念之一,其主要作用是作為啟動容器的模板。
一、獲取映象
映象是執行容器的模板,官方 Docker Hub 倉庫已經提供了許多映象共開發者使用。如果我們需要獲取某 個映象則可以去 docker 倉庫下載所需的映象。 下載映象的格式:docker pull [倉庫的 URL]/[名稱空間]/[倉庫的名稱]:[版本號]
- 搜尋映象
#格式
docker search [映象名稱]
# 例項
[root@master ~]# docker pull nginx:1.17 1.17: Pulling from library/nginx afb6ec6fdc1c: Pull complete b90c53a0b692: Pull complete 11fa52a0fdc0: Pull complete Digest: sha256:6fff55753e3b34e36e24e37039ee9eae1fe38a6420d8ae16ef37c92d1eb26699 Status: Downloaded newer image for nginx:1.17 docker.io/library/nginx:1.17
下載的時候,我們可以看到有若干層組成,像 afb6ec6fdc1c 這樣的字串是層的唯一 ID(實際上,完整的 ID 包括 256 位元, 64 個十六進位制字元組成)。使用 docker pull 命令下載中會獲取並輸出映象的各層資訊。當不 同的映象包括相同的層的時候,本地僅存一份內容,減小儲存空間。
# 格式 docker pull [映象名稱] # 例項 [root@Centos7 ~]# docker pull redis Using default tag: latest latest: Pulling from library/redis # 映象層 a076a628af6f: Already exists f40dd07fe7be: Pull complete ce21c8a3dbee: Pull complete ee99c35818f8: Pull complete 56b9a72e68ff: Pull complete 3f703e7f380f: Pull complete # 映象ID號(映象ID號是全球唯一) Digest: sha256:0f97c1c9daf5b69b93390ccbe8d3e2971617ec4801fd0882c72bf7cad3a13494 # 映象下載狀態 Status: Downloaded newer image for redis:latest # 映象的全稱(映象的tag) docker.io/library/redis:latest
二、檢視映象資訊
2.1映象列表
[root@master ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 8.0.23 cbe8815cbea8 4 months ago 546MB
nginx 1.17 9beeba249f3e 15 months ago 127MB
列舉資訊中,可以看到幾個欄位資訊:
映象來源:來自哪個倉庫,預設來自:hub.docker.com
映象標籤:比喻 1.17
映象 ID:例如 9beeba249f3e
映象建立時間:例如:15 months ago
映象大小:127MB
其中映象的 ID 資訊十分重要,它唯一標識了映象。在使用映象 ID 的時候,一般可以使用該 ID 的前若干個 字元組成的可區分串來替代完整的 ID。
TAG 資訊用於標記來自同一個倉庫的不同映象。TAG 在同一個倉庫中是唯一的。
映象大小資訊只是表示了該映象的邏輯體積大小,實際上由於相同的映象層本地只會儲存一份,物理上佔用 的儲存空間會小於各映象邏輯體積之和。
映象物理結構:
- 分層構建,聯合掛載
image 子命令主要支援如下選項: - -a : 列出所有(包括臨時檔案)映象檔案
- --digests=true|false:列出映象的數字摘要值
- -q : 僅顯示 ID 資訊
2.2為映象新增 tag
為了方便後續工作中使用特定的映象,還可以使用 docker tag 命令來為本地的映象新增標籤。
docker tag : 標記本地映象,將其歸入某一倉庫。
[root@master ~]# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 8.0.23 cbe8815cbea8 4 months ago 546MB
nginx 1.17 9beeba249f3e 15 months ago 127MB
#將映象mysql:8.0.23標記為tom-mysql
[root@master ~]# docker tag mysql:8.0.23 tom-mysql
2.3 獲取映象的詳細資訊
使用 docker inspect 命令獲取映象的詳細資訊,包括 PID、作者、架構等等。
# 格式
docker inspect [映象名稱或映象ID]
[root@master ~]# docker inspect mysql:8.0.23
[
{
"Id": "sha256:cbe8815cbea8fb86ce7d3169a82d05301e7dfe1a8d4228941f23f4f115a887f2",
"RepoTags": [
"mysql:8.0.23",
"tom-mysql:latest"
],
"RepoDigests": [
"mysql@sha256:6e0014cdd88092545557dee5e9eb7e1a3c84c9a14ad2418d5f2231e930967a38"
],
"Parent": "",
"Comment": "",
"Created": "2021-04-10T07:22:41.285951659Z",
"Container": "1f81d0801dce5d57979f73bcebcb363307a6a345cf8910ad61b06a556a1b974e",
"ContainerConfig": {
"Hostname": "1f81d0801dce",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"3306/tcp": {},
"33060/tcp": {}
},
....此處略去千百行
# 引數
-f : 格式化輸出
[root@Centos7 ~]# docker inspect -f '{{.Id}}' 621ceef7494a
sha256:621ceef7494adfcbe0e523593639f6625795cc0dc91a750629367a8c7b3ccebb
[root@Centos7 ~]# docker inspect -f '{{.ContainerConfig.Hostname}}' redis
16535cfaf84a
本文來自部落格園,作者:看啥,轉載請註明原文連結:https://www.cnblogs.com/jykn92/p/15152240.html