官术网_书友最值得收藏!

3.1 獲取鏡像

鏡像是運行容器的前提,官方的Docker Hub網站已經提供了數十萬個鏡像供大家開放下載。本節主要介紹Docker鏡像的pull子命令。

可以使用docker [image] pull命令直接從Docker Hub鏡像源來下載鏡像。該命令的格式為docker [image] pull NAME[:TAG]。

其中,NAME是鏡像倉庫名稱(用來區分鏡像), TAG是鏡像的標簽(往往用來表示版本信息)。通常情況下,描述一個鏡像需要包括“名稱+標簽”信息。

例如,獲取一個Ubuntu 18.04系統的基礎鏡像可以使用如下的命令:

        $ docker pull ubuntu:18.04
        18.04: Pulling from library/ubuntu
        ...
        Digest: sha256:e27e9d7f7f28d67aa9e2d7540bdc2b33254b452ee8e60f388875e5b7d9b2b696
        Status: Downloaded newer image for ubuntu:18.04

對于Docker鏡像來說,如果不顯式指定TAG,則默認會選擇latest標簽,這會下載倉庫中最新版本的鏡像。

下面的例子將從Docker Hub的Ubuntu倉庫下載一個最新版本的Ubuntu操作系統的鏡像:

        $ docker pull ubuntu
        Using default tag: latest
        latest: Pulling from library/ubuntu
        ...
        Digest: sha256:e27e9d7f7f28d67aa9e2d7540bdc2b33254b452ee8e60f388875e5b7d9b2b696
        Status: Downloaded newer image for ubuntu:latest

該命令實際上下載的就是ubuntu:latest鏡像。

注意

一般來說,鏡像的latest標簽意味著該鏡像的內容會跟蹤最新版本的變更而變化,內容是不穩定的。因此,從穩定性上考慮,不要在生產環境中忽略鏡像的標簽信息或使用默認的latest標記的鏡像。

下載過程中可以看出,鏡像文件一般由若干層(layer)組成,6c953ac5d795這樣的串是層的唯一id(實際上完整的id包括256比特,64個十六進制字符組成)。使用docker pull命令下載中會獲取并輸出鏡像的各層信息。當不同的鏡像包括相同的層時,本地僅存儲了層的一份內容,減小了存儲空間。

讀者可能會想到,在不同的鏡像倉庫服務器的情況下,可能會出現鏡像重名的情況。

嚴格地講,鏡像的倉庫名稱中還應該添加倉庫地址(即registry,注冊服務器)作為前綴,只是默認使用的是官方Docker Hub服務,該前綴可以忽略。

例如,docker pull ubuntu:18.04命令相當于docker pull registry.hub.docker.com/ubuntu:18.04命令,即從默認的注冊服務器Docker Hub Registry中的ubuntu倉庫來下載標記為18.04的鏡像。

如果從非官方的倉庫下載,則需要在倉庫名稱前指定完整的倉庫地址。例如從網易蜂巢的鏡像源來下載ubuntu:18.04鏡像,可以使用如下命令,此時下載的鏡像名稱為hub.c.163.com/public/ubuntu:18.04

        $ docker pull hub.c.163.com/public/ubuntu:18.04

pull子命令支持的選項主要包括:

? -a, --all-tags=true|false:是否獲取倉庫中的所有鏡像,默認為否;

? --disable-content-trust:取消鏡像的內容校驗,默認為真。

另外,有時需要使用鏡像代理服務來加速Docker鏡像獲取過程,可以在Docker服務啟動配置中增加--registry-mirror=proxy_URL來指定鏡像代理服務地址(如https://registry.docker-cn.com)。

下載鏡像到本地后,即可隨時使用該鏡像了,例如利用該鏡像創建一個容器,在其中運行bash應用,執行打印“Hello World”命令:

        $ docker run -it ubuntu:18.04 bash
        root@65663247040f:/# echo "Hello World"
        Hello World
        root@65663247040f:/# exit
主站蜘蛛池模板: 府谷县| 新乡县| 肥城市| 盐源县| 海宁市| 竹北市| 郴州市| 南开区| 东安县| 当阳市| 兴文县| 故城县| 缙云县| 青浦区| 山阴县| 江华| 霍邱县| 左云县| 延边| 靖西县| 金川县| 罗平县| 白河县| 曲靖市| 仙游县| 涞水县| 奇台县| 阜城县| 岑巩县| 常山县| 工布江达县| 海晏县| 普宁市| 如东县| 浑源县| 柳州市| 阿城市| 庄浪县| 辉县市| 栾城县| 商城县|