摘要:原文地址零基礎(chǔ)入門指南五倉庫是集中存放鏡像的地方。最常使用的公開服務(wù)是官方的,這也是默認(rèn)的,并擁有大量的高質(zhì)量的官方鏡像。登錄可以通過執(zhí)行命令交互式的輸入用戶名及密碼來完成在命令行界面登錄。使用將這個鏡像標(biāo)記為。
原文地址:Docker零基礎(chǔ)入門指南(五)
倉庫( Repository )是集中存放鏡像的地方。一個容易混淆的概念是注冊服務(wù)器( Registry )。實際上注冊服務(wù)器是管理倉庫的具體服務(wù)器,每個服務(wù)器上可以有多個倉庫,而每個倉庫下面有多個鏡像。從這方面來說,倉庫可以被認(rèn)為是一個具體的項目或目錄。例如對于倉庫地址 dl.dockerpool.com/ubuntu 來說,dl.dockerpool.com 是注冊服務(wù)器地址, ubuntu 是倉庫名。
Docker RegistryDocker Registry用來提供集中的存儲、分發(fā)鏡像的服務(wù)。
一個 Docker Registry 中可以包含多個倉庫(Repository);每個倉庫可以包含多個標(biāo)簽(Tag);每個標(biāo)簽對應(yīng)一個鏡像。
通常,一個倉庫會包含同一個軟件不同版本的鏡像,而標(biāo)簽就常用于對應(yīng)該軟件的各個版本。我們可以通過 <倉庫名>:<標(biāo)簽> 的格式來指定具體是這個軟件哪個版本的鏡像。如果不給出標(biāo)簽,將以 latest 作為默認(rèn)標(biāo)簽。
以 Ubuntu 鏡像 為例,ubuntu 是倉庫的名字,其內(nèi)包含有不同的版本標(biāo)簽,如,14.04, 16.04。我們可以通過 ubuntu:14.04,或者 ubuntu:16.04 來具體指定所需哪個版本的鏡像。如果忽略了標(biāo)簽,比如 ubuntu,那將視為 ubuntu:latest。
倉庫名經(jīng)常以 兩段式路徑 形式出現(xiàn),比如 jwilder/nginx-proxy,前者往往意味著 Docker Registry 多用戶環(huán)境下的用戶名,后者則往往是對應(yīng)的軟件名。但這并非絕對,取決于所使用的具體 Docker Registry 的軟件或服務(wù)。
Docker Hub最常使用的 Registry 公開服務(wù)是官方的 Docker Hub,這也是默認(rèn)的 Registry,并擁有大量的高質(zhì)量的官方鏡像。
注冊
可以在 https://cloud.docker.com 免費注冊一個 Docker 賬號。
登錄
可以通過執(zhí)行 docker login 命令交互式的輸入用戶名及密碼來完成在命令行界面登錄Docker Hub??梢酝ㄟ^ docker logout 退出登錄。
拉取鏡像
可以通過 docker search 命令來查找官方倉庫中的鏡像,并利用 docker pull 命令來將它下載到本地。
推送鏡像
用戶也可以在登錄后通過 docker push 命令來將自己的鏡像推送到 Docker Hub。
自動創(chuàng)建
自動創(chuàng)建(Automated Builds)功能對于需要經(jīng)常升級鏡像內(nèi)程序來說,十分方便。有時候,用戶創(chuàng)建了鏡像,安裝了某個軟件,如果軟件發(fā)布新版本則需要手動更新鏡像。而自動創(chuàng)建允許用戶通過 Docker Hub 指定跟蹤一個目標(biāo)網(wǎng)站(目前支持 GitHub 或 BitBucket)上的項目,一旦項目發(fā)生新的提交或者創(chuàng)建新的標(biāo)簽(tag),Docker Hub 會自動構(gòu)建鏡像并推送到 Docker Hub 中。要配置自動創(chuàng)建,包括如下的步驟:
創(chuàng)建并登錄 Docker Hub,以及目標(biāo)網(wǎng)站;
在目標(biāo)網(wǎng)站中連接帳戶到 Docker Hub
在 Docker Hub 中 配置一個自動創(chuàng)建
選取一個目標(biāo)網(wǎng)站中的項目(需要含 Dockerfile )和分支
指定 Dockerfile 的位置,并提交創(chuàng)建
之后,可以在 Docker Hub 的 自動創(chuàng)建頁面 中跟蹤每次創(chuàng)建的狀態(tài)。
私有 Docker Registry除了使用公開服務(wù)外,用戶還可以在本地搭建私有 Docker Registry。Docker 官方提供了 Docker Registry 鏡像,可以直接使用做為私有 Registry 服務(wù)。
docker-registry 是官方提供的工具,可以用于構(gòu)建私有的鏡像倉庫。以下內(nèi)容基于dockerregistry v2.x 版本。
安裝運行 docker-registry
可以通過獲取官方 registry 鏡像來運行
$ docker run -d -p 5000:5000 --restart=always --name registry registry
這將使用官方的 registry 鏡像來啟動私有倉庫。默認(rèn)情況下,倉庫會被創(chuàng)建在容器的/var/lib/registry 目錄下。可以通過 -v 參數(shù)來將鏡像文件存放在本地的指定路徑。
$ docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry
在私有倉庫上傳、搜索、下載鏡像
創(chuàng)建好私有倉庫之后,就可以使用 docker tag 來標(biāo)記一個鏡像,然后推送它到倉庫。例如私有倉庫地址為 127.0.0.1:5000 。
先在本機查看已有的鏡像。
$ docker image ls REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB
使用 docker tag 將 ubuntu:latest 這個鏡像標(biāo)記為 127.0.0.1:5000/ubuntu:latest 。
格式為 docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]
$ docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest $ docker image ls REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu latest ba5877dc9bec 6 weeks ago 192.7 MB 127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago 192.7 MB
使用 docker push 上傳標(biāo)記的鏡像。
$ docker push 127.0.0.1:5000/ubuntu:latest The push refers to repository [127.0.0.1:5000/ubuntu] 373a30c24545: Pushed a9148f5200b0: Pushed cdd3de0940ab: Pushed fc56279bbb33: Pushed b38367233d37: Pushed 2aebd096e0e2: Pushed latest: digest: sha256:fe4277621f10b5026266932ddf760f5a756d2facd505a94d2da12f4f52f71f5 a size: 1568
用 curl 查看倉庫中的鏡像。
$ curl 127.0.0.1:5000/v2/_catalog {"repositories":["ubuntu"]}
這里可以看到 {"repositories":["ubuntu"]} ,表明鏡像已經(jīng)被成功上傳了。
先刪除已有鏡像,再嘗試從私有倉庫中下載這個鏡像。
$ docker image rm 127.0.0.1:5000/ubuntu:latest $ docker pull 127.0.0.1:5000/ubuntu:latest Pulling repository 127.0.0.1:5000/ubuntu:latest ba5877dc9bec: Download complete 511136ea3c5a: Download complete 9bad880da3d2: Download complete 25f11f5fb0cb: Download complete ebc34468f71d: Download complete 2318d26665ef: Download complete
(本文出自itcsdaixie.com,轉(zhuǎn)載請注明出處)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27320.html
摘要:原文地址零基礎(chǔ)入門指南三允許你在容器內(nèi)運行應(yīng)用程序,使用命令來在容器內(nèi)運行一個應(yīng)用程序。由于官方提供的文件,都放在組里面,所以它的是默認(rèn)組,可以省略。如果發(fā)現(xiàn)本地沒有指定的文件,就會從倉庫自動抓取。因此,前面的命令并不是必需的步驟。 原文地址:Docker零基礎(chǔ)入門指南(三) Docker Hello World Docker 允許你在容器內(nèi)運行應(yīng)用程序, 使用 docker run...
摘要:原文地址零基礎(chǔ)入門指南四啟動容器啟動容器有兩種方式,一種是基于鏡像新建一個容器并啟動,另外一個是將在終止?fàn)顟B(tài)的容器重新啟動。此外,當(dāng)容器中指定的應(yīng)用終結(jié)時,容器也自動終止。命令命令用于進(jìn)入一個正在運行的容器。 原文地址:Docker零基礎(chǔ)入門指南(四) 啟動容器 啟動容器有兩種方式,一種是基于鏡像新建一個容器并啟動,另外一個是將在終止?fàn)顟B(tài)(stopped)的容器重新啟動。因為Docke...
摘要:一個鏡像可以放到另一個京廣線的頂部,位于下面的鏡像稱為父鏡像,最底部的稱為基礎(chǔ)鏡像。鏡像是基于聯(lián)合文件系統(tǒng)的一種層式的結(jié)構(gòu),由一系列指令一步步構(gòu)建處理。拉取鏡像使用命令啟動一個鏡像時,會檢查本地是否存在該鏡像。 什么是鏡像 Docker鏡像時由文件系統(tǒng)疊加而成,最底端是一個引導(dǎo)文件系統(tǒng),即bootfs,這很像典型的Linux/Unix的引導(dǎo)文件系統(tǒng)。Docker用戶幾乎永遠(yuǎn)不會和引導(dǎo)...
摘要:各組件結(jié)構(gòu)下載安裝啟動的官方文檔上提供了非常詳細(xì)的安裝流程,簡單摘錄在上下載社區(qū)版并安裝的操作命令當(dāng)控制臺輸出加一大段介紹文字時,安裝就大功告成了。 原文鏈接:http://tabalt.net/blog/docker... Docker是一個使用Golang開發(fā)的開源應(yīng)用容器引擎,讓開發(fā)者可以打包應(yīng)用和依賴到一個輕量級、可移植的鏡像中,然后分發(fā)到任何流行的Linux機器上,并在這些機...
摘要:原文地址零基礎(chǔ)入門指南一介紹簡介源代碼托管在上,公司開源的一個基于技術(shù)之上構(gòu)建的容器引擎,基于語言并遵從協(xié)議開源。通過等實現(xiàn)內(nèi)核虛擬化技術(shù),并提供容器的資源隔離與安全保障等。 原文地址:Docker零基礎(chǔ)入門指南(一):Docker介紹 Docker簡介 Docker源代碼托管在 GitHub上,Docker 公司開源的一個基于LXC技術(shù)之上構(gòu)建的Container容器引擎,基于Go...
閱讀 1876·2023-04-25 19:51
閱讀 1181·2021-11-15 11:43
閱讀 4543·2021-11-02 14:40
閱讀 2008·2021-10-11 10:59
閱讀 1349·2021-09-22 15:05
閱讀 1038·2021-09-09 09:32
閱讀 660·2019-08-30 15:56
閱讀 560·2019-08-30 15:52