Docker Registry

前言

上一篇文章講了Docker Machine實現多主機Docker節點的管理。本文講解如何實現Docker Registry,其實這個在第一篇Docker入門一文中已經簡單介紹,本文僅是對一些細節作個說明。html

Why Docker Registry?

有時咱們的服務器沒法訪問互聯網,或者你不但願將本身的鏡像放到公網當中,那麼你就須要Docker Registry,它能夠用來存儲和管理本身的鏡像。docker

How to install Docker Registry?

其實建立私有的Docker倉庫很是簡單,只須要運行一個Registry容器便可,該容器存儲在Docker HUB中。shell

docker run -d -p 5000:5000 -v /myregistry:/var/lib/registry registry

-d 是後臺啓動容器。json

-p 將容器的 5000 端口映射到 Host 的 5000 端口。5000 是 registry 服務端口。ubuntu

-v 將容器 /var/lib/registry目錄映射到宿主機的/myregistry,用於存放鏡像數據。安全

How to use Docker Registry?

理論上咱們已經搭建好了本身的私有鏡像倉庫,但這時候還有一些問題須要咱們解決。服務器

在pull或者push鏡像時報拒絕鏈接的錯誤。

這是因爲Registry爲了安全性考慮,默認是須要證書支持的,證書這塊我倒沒有研究過,能夠經過一個簡單的辦法解決。建立或者修改/etc/docker/daemon.json文件,並在其中寫入curl

{
    "insecure-registries": ["<ip>:5000"] 
}

其中 爲安裝了Registry的機器ip地址。須要注意的是在安裝registry的節點和客戶端須要訪問私有Registry的節點都須要執行此步操做。 url

修改文以後執行如下命令重啓節點docker。rest

systemctl daemon-reload
systemctl restart docker

我是在ubuntu16環境進行的上述操做,其餘系統能夠參考相應命令。

經過 docker tag重命名鏡像,使之與registry匹配。

docker tag wsf <ip>:5000/wsf:v1

給wsf鏡像重命名爲 :5000/wsf:v1,v1爲版本號,前面必需要加上域名或IP地址(運行上面registry容器的地址)和端口號。

其實Docker HUB與咱們要創建的私有Registry沒有本質的區別。

docker run ubuntu

語句從官方hub中尋找鏡像,它是

docker run docker.io/library/ubuntu

的簡寫。

docker.io便是上面的ip地址,端口號爲80省略。

上傳鏡像

docker push <ip>:5000/wsf:v1

下載鏡像

docker pull <ip>:5000/wsf:v1

上傳和下載鏡像均可以在任意能訪問Registry的節點上進行。前提是此節點必須進行上述的修改daemon.json操做。

查看Registry中全部鏡像信息

curl http://<ip>:5000/v2/_catalog

此語句會返回一個json,包含當前Registry中存儲的鏡像信息。

總結

本文簡單爲你們介紹了Docker Registry的相關細節,有了這個東西就能更好的實現docker的多主機管理和咱們自定義鏡像的管理。

相關文章
相關標籤/搜索