2014-06-14 80 views
12

美好的一天!Docker註冊表和索引

我看了很多關於碼頭註冊表的信息,仍然有一些關於它的問題...請幫我理解關於索引和註冊表的一些事情。

  1. 我已經爲私有存儲庫安裝了docker-registry。並且我使用了獨立模式true。據我所知,碼頭註冊表不能驗證用戶 - 它要求索引權限和身份驗證。所以,我禁用了獨立模式,因此docker-registry需要通過index.docker.io對我進行身份驗證,但它不起作用 - 註冊表允許我推送和拉取我想要的任何圖像。所以問題是 - 爲什麼碼頭註冊表不試圖通過我 index.docker.io?

  2. 如果docker-registry通過index.docker.io對我進行身份驗證,那麼在哪裏存儲授權參數?我的意思是,如果我想授予用戶vozerov只推送到private.repo.domain:5000/vozerov存儲庫。

  3. 泊塢窗搜索索引。所以如果我想在我的私人存儲庫中搜索我的圖像,我需要告訴index.docker.io有新的私有存儲庫。是真的還是我說錯了?

  4. 我發現搬運工指數項目在github上 - https://github.com/ekristen/docker-index。它是index.docker.io的替代品。所以,如果我安裝它,登錄它,碼頭搜索命令搜索通過我的私人索引或通過index.docker.io?

UPD

我今天晚上做了很多與泊塢窗的註冊表,所以我有點糊塗:

  1. 如果單機模式是真實的,那麼disable_token_auth不用於 任何變種。所以我們可以:

    1.1使用此回購沒有身份驗證(拉和推送權給任何人)。

    1.2使用基本身份驗證與nginx的和泊塢窗登錄my.registry.com,所以有基本身份驗證信息可以推拉的每個用戶。所以,我們在這種模式下沒有授權。

  2. 如果單機模式是假的,那麼泊塢窗的註冊表需要index.docker.io溝通,但事實並非如此。兩種變體:

    2.1。如果disable_auth_token爲真 - 我得到405錯誤(方法不允許),但這意味着我允許任何人推或拉圖像,或不是?

    2.2。如果disable_auth_token是假的 - 我得到405錯誤...

而對於2.1和2.2泊塢窗登錄my.registry.com不工作 - 它讓我看到404錯誤...也許這是我的錯誤配置?

+0

你是否設法建立碼頭索引?我已經看了幾天了。 –

回答

-1

Docker註冊表管理碼頭圖像。 Docker索引管理身份驗證。 Docker註冊表是open source,而Docker索引不是開源的。

如果部署docker-registry,則必須對其執行驗證。

碼頭索引可以爲您提供私人碼頭註冊表,檢查this

+0

謝謝,但這不是真正的答案。我知道索引管理auth和註冊表映像。 我問搬運工的註冊表模式:) 但還是非常感謝您的回答:) 附:我已經在測試環境中部署了docker的工作版本,但是我真的不明白它是如何在生產環境中工作的,因爲存在很多錯誤......現在,我使用docker作爲註冊表,並且我有base container全部,這是由ansible配置的。我會盡力寫一篇關於這方面的文章:) – canavar

0

如果你想認證(和加密)到你的私人註冊表,那麼你需要把nginx或apache作爲代理放在docker前面,並在那裏使用http認證和SSL終止。

據我所知,沒有辦法讓泊塢窗搜索命令搜索你的私人註冊表。該命令僅搜索Docker Hub。

1

1.我已經爲私人存儲庫安裝了docker-registry。並且我使用了獨立模式true。據我所知,碼頭註冊表不能驗證用戶 - 它要求索引權限和身份驗證。所以,我禁用了獨立模式,因此docker-registry需要通過index.docker.io對我進行身份驗證,但它不起作用 - 註冊表允許我推送和拉取我想要的任何圖像。所以問題是 - 爲什麼docker-registry不會通過我的index.docker.io來驗證我的身份?

您設置的私人碼頭註冊表沒有身份驗證,因爲您沒有設置它。您必須使用nginx作爲反向代理來設置身份驗證,並且由於docker客戶端不支持沒有SSL的基本身份驗證,因此您還必須在反向代理上設置SSL。

當您推或拉時,您正在使用碼頭客戶端。它可以連接到任何註冊表,您設置的私人註冊表以及碼頭中心。這裏有幾點需要考慮:

  • 當你火了從碼頭工人的客戶端泊塢窗搜索,將默認搜索泊塢窗樞紐,讓你從那裏只要是公開拉任何圖像。

  • 需要登錄才能在Docker Hub中推送圖像。

  • 現在,如果你要搜索您的私人碼頭工人的註冊表,你必須告訴泊塢窗客戶來搜索以下格式的註冊表:

    docker search private.repo.domain:5000/vozerov 
    
  • 現在,根據哪一本登記冊,你居然要搜索,如果您使用反向代理進行安裝,您的私人註冊表將需要它自己的身份驗證,如果您想使用它來推送圖像,則碼頭中心會要求您登錄。

  • 你可以推/拉/搜索的原因是因爲你可能告訴碼頭客戶端只在你的私有註冊表中執行這些操作,只需指定domain_name:port/image_name即使你沒有指定和使用Docker Hub默認情況下,除非您嘗試推送圖像,否則不會遇到身份驗證問題。

2.如果碼頭工人的註冊表驗證我度過index.docker.io,所以存儲授權參數在哪裏呢?我的意思是,如果我想授予用戶vozerov只推送到private.repo.domain:5000/vozerov存儲庫。

  • 授權參數存儲在您的碼頭工人,客戶機上的以下文件(這是一個隱藏文件,所以使用ls -la)。文件被稱爲:「。dockercfg」

  • 在這個文件中,你發現你試圖登錄到與成功註冊的登錄憑證細節:

    { 
         "your_domain.com": { 
           "auth": "dXNlcjE6cGFzc3dvcmQxMjM=" 
           "email": "" 
    } 
    
  • 的‘權威性’是你的base 64編碼(用戶名:密碼)憑據

  • Docker私人註冊表僅提供登錄(僅在反向代理的幫助下)如果您想要一個完整的基於用戶的認證/授權或訪問控制系統,您可以查看像Artifactory或核心操作系統企業註冊表的解決方案

3.Docker通過索引搜索。所以如果我想在我的私人存儲庫中搜索我的圖像,我需要告訴index.docker.io有新的私有存儲庫。是真的還是我說錯了?

  • 通過index.io泊塢客戶端搜索,如果你不指定要它來搜索你的私人註冊表。這是docker的默認行爲。您的私人碼頭註冊表完全與官方碼頭索引分離,完全與它無關。如果你想搜索在泊塢客戶的私人註冊表,這裏有一些命令,你可以使用天然的或捲曲:
  • 使用curl(apt-get的安裝JQ):

    curl -s -X GET http://private.repo.domain:5000/v1/search | jq '.results[].name' 
    
  • 使用泊塢窗搜索:

    docker search private.repo.domain:5000/<search_keyword> 
    

4,我發現搬運工指數項目在github上 - https://github.com/ekristen/docker-index。它是index.docker.io的替代品。所以,如果我安裝它,登錄它,碼頭搜索命令搜索通過我的私人索引或通過index.docker.io?

  • 貌似該項目即將停止的碼頭工人與一個新的註冊表推出。從來沒有真正嘗試過,所以我不知道它搜索哪個註冊表。因爲Docker Hub已經擁有自己的索引,所以如果我猜測它會搜索你的私有註冊表。