(十一)使用公共 Registry
? 保存和分發鏡像的最直接方法就是使用 Docker Hub,Docker Hub 是 Docker 公司維護的公共 Registry,用戶可以將自己的鏡像保存到 Docker Hub 免費的 repository 中,如果不希望別人訪問自己的鏡像,也可以購買私有 repository,
(1)Docker Hub 存取鏡像
-
首先得在 Docker Hub 上注冊一個賬號,
-
在 Docker Host 上登錄,
root@cuiyongchao:/dockerfile# docker login -u cuiyongchao007 Password: WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded root@cuiyongchao:/dockerfile# -
修改鏡像的 repository 使之與 Docker Hub 賬號匹配, Docker Hub 為了區分不同用戶的同名鏡像,鏡像的 registry 中要包含用戶名,完整格式為:[username]/xxx:tag ,我們通過
docker tag命令重命名鏡像,root@cuiyongchao:/dockerfile# docker tag httpd:latest cuiyongchao007/httpd:v1 root@cuiyongchao:/dockerfile# docker images cuiyongchao007/httpd REPOSITORY TAG IMAGE ID CREATED SIZE cuiyongchao007/httpd v1 3dd970e6b110 2 weeks ago 138MB root@cuiyongchao:/dockerfile#注:Docker 官方自己維護的鏡像沒有用戶名,比如 httpd,
-
通過 docker push 將鏡像上傳到 Docker Hub,
root@cuiyongchao:/dockerfile# docker push cuiyongchao007/httpd:v1 The push refers to repository [docker.io/cuiyongchao007/httpd] 850c0c904ff3: Pushed c264370aa736: Pushed e6f7f192bbc8: Pushed 6d80bc0bd923: Pushed d0fe97fa8b8c: Pushed v1: digest: sha256:60b82a0c2599b217d5231d3a54eb9f691ac8bc15b66f8f5f79f383f87c9c51ce size: 1366 root@cuiyongchao:/dockerfile#Docker 會上傳鏡像的每一層,因為 cuiyongchao007httpd:v1 這個鏡像實際上跟官方的 httpd 鏡像一模一樣,Docker Hub 上已經有了全部的鏡像層,所以真正上傳的資料很少,同樣的,如果我們的鏡像是基于 base 鏡像的,也只有新增加的鏡像層會被上傳,如果想上傳同一 repository 中所有鏡像,省略 tag 部分就可以了,例如: docker push cuiyongchao007/httpd
-
登錄 https://hub.docker.com,在Public Repository 中就可以看到上傳的鏡像,
-
-
這個鏡像可被其他 Docker host 下載使用,
root@cuiyongchao:/dockerfile# docker pull cuiyongchao007/httpd:v1 v1: Pulling from cuiyongchao007/httpd Digest: sha256:60b82a0c2599b217d5231d3a54eb9f691ac8bc15b66f8f5f79f383f87c9c51ce Status: Downloaded newer image for cuiyongchao007/httpd:v1 docker.io/cuiyongchao007/httpd:v1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/202440.html
標籤:其他
