拉取鏡像
常規(guī)用法
$ docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
5ba4f30e5bea: Pull complete
9d7d19c9dc56: Pull complete
ac6ad7efd0f9: Pull complete
e7491a747824: Pull complete
a3ed95caeb02: Pull complete
Digest: sha256:46fb5d001b88ad904c5c732b086b596b92cfb4a4840a3abd0e35dbb6870585e4
Status: Downloaded newer image for ubuntu:latest
可以使用docker pull命令直接從Docker Hub鏡像源來(lái)下載鏡像径荔。該命令的格式為docker pull NAME[:TAG]。其中寒屯,NAME是鏡像倉(cāng)庫(kù)的名稱(chēng)(用來(lái)區(qū)分鏡)弯囊,TAG是鏡像的標(biāo)簽(往往用來(lái)表示版本信息)赵颅。通常情況下氢拥,描述一個(gè)鏡像需要包括“名稱(chēng)+標(biāo)簽”信息蚌铜。
如果不顯式指定TAG,則默認(rèn)會(huì)選擇latest標(biāo)簽嫩海,這會(huì)下載倉(cāng)庫(kù)中最新版本的鏡像冬殃,一般來(lái)說(shuō),鏡像的latest標(biāo)簽意味著該鏡像的內(nèi)容會(huì)跟蹤最新的非穩(wěn)定版本而發(fā)布叁怪,內(nèi)容是不穩(wěn)定的审葬。從穩(wěn)定性上考慮,不要在生產(chǎn)環(huán)境中忽略鏡像的標(biāo)簽信息或使用默認(rèn)的latest標(biāo)記的鏡像。
下載過(guò)程中可以看出涣觉,鏡像文件一般由若干層(layer)組成痴荐,6c953ac5d795這樣的串是層的唯一id(實(shí)際上完整的id包括256比特,由64個(gè)十六進(jìn)制字符組成)旨枯。使用docker pull命令下載時(shí)會(huì)獲取并輸出鏡像的各層信息。當(dāng)不同的鏡像包括相同的層時(shí)混驰,本地僅存儲(chǔ)層的一份內(nèi)容攀隔,減小了需要的存儲(chǔ)空間。
嚴(yán)格地講栖榨,鏡像的倉(cāng)庫(kù)名稱(chēng)中還應(yīng)該添加倉(cāng)庫(kù)地址(即registry昆汹,注冊(cè)服務(wù)器)作為前綴,只是我們默認(rèn)使用的是Docker Hub服務(wù)婴栽,該前綴可以忽略满粗。
例如,docker pull ubuntu:14.04命令相當(dāng)于docker pull registry.hub.docker.com/ubuntu:14.04命令愚争,即從默認(rèn)的注冊(cè)服務(wù)器Docker Hub Registry中的ubuntu倉(cāng)庫(kù)來(lái)下載標(biāo)記為14.04的鏡像映皆。
如果從非官方的倉(cāng)庫(kù)下載,則需要在倉(cāng)庫(kù)名稱(chēng)前指定完整的倉(cāng)庫(kù)地址轰枝。例如從網(wǎng)易蜂巢的鏡像源來(lái)下載ubuntu:14.04鏡像捅彻,可以使用如下命令,此時(shí)下載的鏡像名稱(chēng)為hub.c.163.com/public/ubuntu:14.04
已下載的鏡像一般是存放在/var/lib/docker/image/overlay2目錄下的 repositories.json文件中
拉取指定架構(gòu)的鏡像
- 使用 --platform 選項(xiàng):(arm64/amd64)
docker pull --platform arm64 nginx
Using default tag: latest
latest: Pulling from library/nginx
latest: Pulling from library/nginx
24e221e92a36: Pull complete
dea6ff782824: Pull complete
b68aa9452119: Pull complete
7d7695f966cc: Pull complete
ecb8652230eb: Pull complete
df105b20a688: Pull complete
ff0d90dfb474: Pull complete
Digest: sha256:064a954fd07bc6468b490488cd0703837601f71a8931f440f3658ad387f5dee4
Status: Downloaded newer image for nginx:latest
如果報(bào)錯(cuò)鞍陨,則需修改配置文件步淹,重啟docker服務(wù)
[root@localhost ~]# docker pull --platform arm64 nginx
"--platform" is only supported on a Docker daemon with experimental features enabled
在/etc/docker/daemon.json中添加"experimental": true,如圖: