Docker Hub 雖然很是方便,但仍是有些限制,好比:docker
須要 internet 鏈接,並且下載和上傳速度慢。
安全
上傳到 Docker Hub 的鏡像任何人都可以訪問,雖然能夠用私有 repository,但不是免費的。
網絡
安全緣由不少組織不容許將鏡像放到外網。code
解決方案就是搭建本地的 Registry。文檔
Docker 已經將 Registry 開源了,同時在 Docker Hub 上也有官方的鏡像 registry。下面咱們就在 Docker 中運行本身的 registry。get
啓動 registry 容器。
咱們使用的鏡像是 registry:2。
-d
是後臺啓動容器。
-p
將容器的 5000 端口映射到 Host 的 5000 端口。5000 是 registry 服務端口。端口映射咱們會在容器網絡章節詳細討論。
-v
將容器 /var/lib/registry 目錄映射到 Host 的 /myregistry,用於存放鏡像數據。-v
的使用咱們會在容器存儲章節詳細討論。it
經過 docker tag
重命名鏡像,使之與 registry 匹配。
咱們在鏡像的前面加上了運行 registry 的主機名稱和端口。
前面已經討論了鏡像名稱由 repository 和 tag 兩部分組成。而 repository 的完整格式爲:[registry-host]:[port]/[username]/xxx
只有 Docker Hub 上的鏡像能夠省略 [registry-host]:[port] 。io
經過 docker push
上傳鏡像。
容器
如今已經可經過 docker pull
從本地 registry 下載鏡像了。
除了鏡像的名稱長一些(包含 registry host 和 port),使用方式徹底同樣。後臺
以上是搭建本地 registry 的簡要步驟。固然 registry 也支持認證,https 安全傳輸等特性,具體能夠參考官方文檔 https://docs.docker.com/registry/configuration/
至此,Docker 鏡像的內容就討論完了,下節咱們對這部分作個小結。