1、準備工作
Docker Hub地址:https://hub.docker.com/
(1)註冊使用者:
說明:
Sign In
:登陸,已有賬戶,點選這裡進行登陸。Sign Up
:註冊,沒有賬戶,點選這裡進行註冊。Get Started Today for Free
:立刻免費開始。Already have an account? Sign In
:已經有帳號了? 登入。Send me occasional product updates and announcements.
:給我傳送產品更新和公告。- 進行人機身份驗證:這個選項必須勾選。
By creating an account, you agree to the Terms of Service, Privacy. Poligy, and Data Processing Terms.
:建立帳戶即表示您同意“服務條款,隱私”。 政策和資料處理條款。
上面的解釋已經很清楚了,我們直接填寫使用者名稱、郵箱、密碼,勾選進行人機身份驗證,最後點選Sign Up
即可。
(2)驗證使用者:
之後去我們的郵箱進行驗證:
感謝加入Docker。完成註冊,請點選下面的按鈕來驗證您的帳戶。
點選:Verify email address
:驗證電子郵件。
之後會跳轉到如下介面:
提示您:驗證成功!請使用您的憑據登入。
之後Docker會再給你傳送一封郵件,內容為:恭喜您,您的帳戶已被驗證,歡迎訪問Docker。
然後我們就可以用上邊註冊的使用者名稱密碼進行登陸了。
(3)登陸Docker Hub
登陸Docker Hub,會在右上角顯示當前使用者名稱稱。
2、Docker登陸命令
登陸命令:docker login
[root@192 tomcatlogs]# docker login --help
Usage: docker login [OPTIONS] [SERVER]
Log in to a Docker registry.
If no server is specified, the default is defined by the daemon.
Options:
-p, --password string Password
--password-stdin Take the password from stdin
-u, --username string Username
演示:
# 使用者名稱或密碼錯誤
[root@192 ~]# docker login -u xxxxx6688
Password:
Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password
# 登陸成功
[root@192 ~]# docker login -u xxxxx6688
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
登入完畢後就可以提交映象了。
說明:
- docker login : 登陸到一個Docker映象倉庫,如果未指定映象倉庫地址,預設為官方倉庫 Docker Hub
- docker logout : 登出一個Docker映象倉庫,如果未指定映象倉庫地址,預設為官方倉庫 Docker Hub
登出示例:
[root@192 ~]# docker logout
Removing login credentials for https://index.docker.io/v1/
3、Docker提交命令
提交命令:docker pull 映象名:TAG
[root@192 tomcatlogs]# docker push --help
Usage: docker push [OPTIONS] NAME[:TAG]
Push an image or a repository to a registry
Options:
-a, --all-tags Push all tagged images in the repository
--disable-content-trust Skip image signing (default true)
-q, --quiet Suppress verbose output
示例:
# 檢視本地Docker映象
[root@192 ~]# clear
[root@192 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
diytomcat9 latest 12988584a30e 14 hours ago 607MB
centos latest 300e315adb2f 3 months ago 209MB
# 把diytomcat9映象釋出到Docker Hub
[root@192 ~]# docker push diytomcat9
Using default tag: latest
The push refers to repository [docker.io/library/diytomcat9]
b4ef62e90bac: Preparing
5da8b73f85d7: Preparing
68a0171f3cc4: Preparing
76f4ae6e5125: Preparing
2653d992f4ef: Preparing
可以看到,向遠端倉庫推送映象的時候,也是按照映象的層級來進行推送的。
提示:我看網上說有用
docker push 註冊使用者名稱/映象名:TAG
來進行提交,親測不用加使用者名稱。
4、總結:
釋出映象到Docker Hub很簡單,只需要兩步:
docker login
:登陸Docker Hub。docker push
:釋出映象到Docker Hub。
5、補充:docker tag命令
作用貌似是,修改本地映象名稱和版本號,其實是給映象打標記。
使用命令:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
作用:給本地映象打一個標記(tag
),可將其歸入某一倉庫。
演示:
# 檢視本地Docker映象
[root@192 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
diytomcat9 latest 12988584a30e 14 hours ago 607MB
centos latest 300e315adb2f 3 months ago 209MB
# 給diytomcat9映象打tag標記
[root@192 ~]# docker tag 12988584a30e wukong/tomcat9:1.8
# 再次檢視本地Docker映象
[root@192 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
diytomcat9 latest 12988584a30e 14 hours ago 607MB
wukong/tomcat9 1.8 12988584a30e 14 hours ago 607MB
centos latest 300e315adb2f 3 months ago 209MB
提示:映象打了新的TAG,雖然會多了一條映象記錄,但是從IMAGE ID可以得知他們是同一個映象。
實際使用場景:
- 當映象配置到一定程度時,想打個
tag
進行記錄當前版本,可以打個V1
。 - 再次更新映象時,又可以打個
V2
。 - 當是最新版本待上傳時,可以不打預設就是
latest
最新。 - 這樣不僅能儲存最新版本的映象,也能儲存歷史版本的映象,方便新版本映象出問題時進行版本回溯。