云計算核心技術(shù)Docker教程:Docker 守護進程dockerd不安全的注冊表
Docker認為私有注冊表是安全的還是不安全的。在本節(jié)的其余部分中,注冊表用于私有注冊表,并且myregistry:5000 是私有注冊表的占位符示例。
安全注冊表使用TLS,并將其CA證書的副本放置在Docker主機上,網(wǎng)址為/etc/docker/certs.d/myregistry:5000/ca.crt。不安全的注冊表要么未使用TLS(即偵聽純文本HTTP),要么正在使用帶有Docker守護進程未知的CA證書的TLS。當在下沒有找到證書時/etc/docker/certs.d/myregistry:5000/,或者證書驗證失敗(例如,錯誤的CA)時,可能會發(fā)生后者 。
默認情況下,Docker假設(shè)所有注冊表都是安全的。如果Docker認為注冊表是安全的,則無法與不安全的注冊表通信。為了與不安全的注冊表進行通信,Docker守護程序需要--insecure-registry以下兩種形式之一:
- --insecure-registry myregistry:5000 告訴Docker守護程序myregistry:5000應(yīng)該被認為是不安全的。
- --insecure-registry 10.1.0.0/16 告訴Docker守護程序,其域解析為IP地址的所有注冊表都是CIDR語法描述的子網(wǎng)的一部分,應(yīng)被視為不安全。
可以多次使用該標志,以允許將多個注冊表標記為不安全。
如果不安全的注冊表沒有被標記為不安全的,docker pull, docker push,和docker search將導致一個錯誤消息,提示用戶或者安全或通過--insecure-registry如上所述標志提供給多克爾守護進程。
從Docker 1.3.2開始,其IP地址在127.0.0.0/8范圍內(nèi)的本地注冊表會自動標記為不安全。不建議依賴此方法,因為將來可能會更改。
- --insecure-registry在運行本地注冊表時,啟用(即允許未經(jīng)加密和/或不受信任的通信)可能很有用。但是,由于使用它會產(chǎn)生安全漏洞,因此僅應(yīng)出于測試目的將其啟用。為了提高安全性,用戶應(yīng)將其CA添加到系統(tǒng)的受信任CA列表中,而不要啟用--insecure-registry。
舊版注冊表
不再支持針對僅支持舊版v1協(xié)議的注冊表的操作。具體來說,守護進程不會嘗試push,pull并login 以V1登記。唯一的例外是search仍可以在v1注冊中心上執(zhí)行。