1. 程式人生 > >Docker 本地鏡像推送到阿裏雲

Docker 本地鏡像推送到阿裏雲

inux 阿裏 ref 版本號 如何 mil systemctl -h system

  最近在學習Docker,從安裝Docker開始,到自定義制作鏡像mycentos,但是怎麽把它推送到阿裏雲,一直是困擾我的問題。後面有時間了解了一下,根據本地鏡像推動到阿裏雲其實並沒有我們想象中那麽難。

前提條件:

  已經生成一個鏡像,鏡像生成的方法,可以參考另外一篇博文:https://www.cnblogs.com/wendyw/p/9728381.html

  已經生產一個鏡像後,現在要做的事就是把本地鏡像推送到阿裏雲上(目前我使用的是阿裏雲的倉庫)

1、從本地鏡像推送到阿裏雲上,需要知道幾個網址

  A 阿裏雲開發者平臺:https://dev.aliyun.com/search.html

  B 阿裏雲官網:https://www.aliyun.com/

2、為什麽要知道這2個網址:

  A 阿裏雲開發者平臺:找到對應的”命名空間/鏡像名稱”,就是push到阿裏雲上的鏡像。當然,也可以去搜索其他你所需要的鏡像。

  B 阿裏雲官網:找到容器鏡像服務,步驟:阿裏雲->控制臺-> 產品與服務->彈性計算->容器鏡像服務,可以創建鏡像倉庫、命名空間等。

3、實戰-本地鏡像推送阿裏雲

3.1 打開虛擬機centos7終端,執行docker images出現錯誤:【Failed to restart dock.service: Unit not found.】,執行如下代碼:

systemctl unmask docker.service

systemctl unmask docker.socket

systemctl start docker.service

3.2 鏡像的生成方法

  如何生成鏡像,請看這一篇博文:https://www.cnblogs.com/wendyw/p/9728381.html

a 打開終端,輸入命令 docker image 查看mycentos:1.3的容器ID

docker images

docker run -it 鏡像id //找到mycentos:1.3的鏡像id,此時已經開啟一個容器

//只要容器不退出,另外再打開一個終端,把mycentos:1.3復制一份生成mycentos:1.4上傳到阿裏雲
輸入如下命令: docker ps //查看運行中的容器 docker commit -a 命名空間 -m “註釋內容” 容器id(container id) 鏡像名稱(image id):TAG //鏡像名稱(image id):TAG是最新提交的TAG和鏡像名稱 ,比如mycentos:1.4 //容器id是根據docker ps查看,找到對應的容器id

3.3 將本地鏡像登錄到阿裏雲

在阿裏雲平臺,需要做如下3步:

  a 創建命名空間,比如abc

  b建立倉庫名稱,比如def

  c 建立的鏡像倉庫->找到對應的倉庫,選擇def->點擊操作欄管理->基本信息->操作指南,找到第三個步驟,將鏡像推送到Registry,把這3條命令在linux終端系統輸入,對應的imageid、鏡像版本號進行修改,執行命令如下:

$ sudo docker login --username=xxx registry.cn-hangzhou.aliyuncs.com

//xxx是阿裏雲的賬戶名稱

$ sudo docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/abc/mycentos:[鏡像版本號]

//abc是命名空間,[ImageId]是步驟3.2中的鏡像id

//mycentos:[鏡像版本號]是提交到阿裏雲上的名稱和TAG,比如這裏是mycentos:1.4.1

$ sudo docker push registry.cn-hangzhou.aliyuncs.com/abc/mycentos:[鏡像版本號]

//abc是命名空間,mycentos:[鏡像版本號]與上一步命令保持一致

做完這一步,表示已經從成功從本地上傳到阿裏雲了,可以去阿裏雲開發者平臺搜索abc/mycentos:1.4.1,就能找到你上傳上去的鏡像:

https://dev.aliyun.com/search.html

3.4 將阿裏雲上的鏡像下載到本地

  現在想把開發者平臺中的鏡像,拉取到本地,比如:mycentos:1.4.1

執行如下命令,就可以把阿裏雲開發者平臺中的鏡像拉取到本地:

docker pull registry.cn-hangzhou.aliyuncs.com/abc/mycentos:1.4.1 //abc是命名空間

Docker 本地鏡像推送到阿裏雲