Docker Hub 使用初探
容器的話題越來越熱,今天我也來試試容器的使用,我們以 Docker Hub 為例。
Docker Hub 官網為 https://hub.docker.com/ ,主要用於托管容器鏡像,我們以 Linux 系統 centos 為例:
詳細頁面給出了拉取的命令,不帶標簽默認拉取最新的:
點擊 View Available Tags 可查看所有標簽,其中標簽 7 應該就是標簽 centos7 的簡寫:
我們在 Docker Hub 上可以注冊一個賬號,然后可以創建倉庫,創建一個空倉庫幾乎只需填寫名字即可:
創建完賬戶后,在 Linux 系統命令行中使用 docker login 命令在本地登陸 dockerhub:
這個是我之前登陸過,所以直接就登上了,不然的話,還需要鍵入用戶名和密碼的。
登陸成功后,就可以使用 docker pull centos:7 命令拉取官方鏡像 centos 的標簽號為 7 的分支鏡像:
拉取完畢,使用 docker images 命令查看本地存在的鏡像:
可以看到剛才拉取的 centos 鏡像了。
我們先查看(docker ps)並停止(docker stop <Container Id>)正在運行的容器:
由於暫時不需要了,所以使用命令 docker rm $(docker ps -a -q) 刪除所有容器:
再使用命令 docker rmi <Image Id> 刪除鏡像,僅保留剛才下載的 centos 鏡像:
下面再說明一下 docker 容器使用的其它常用命令:
# 1. 以交互式創建並啟動容器: docker run -i -t –name dlgcy centos /bin/bash
# 2. 在容器命令行狀態下鍵入 Ctrl+P Ctrl+Q 來回到宿主機;
# 3. 查看容器運行狀態: docker ps -a
# 4. 再次進入容器: docker attach dlgcy |
我們用 docker run -i -t –name init centos:7 /bin/bash 命令啟動一個 centos:7 鏡像的交互式容器,名稱為 init :
可以看到命令行前綴已改變,我們目前處於容器中的命令行環境。
我們按 Ctrl+P Ctrl+Q 來回到宿主機后,使用命令 docker ps –a 查看運行的容器:
我們再用 docker attach init 命令重新進入 init 容器:
我們發現沒有 wget 命令,於是進行安裝:
然后我們再回到宿主機,使用命令 docker commit <exiting-container> <hub-user>/<repo-name>[:<tag>] 將容器提交為鏡像,這里實際的命令為 docker commit f9127ff7e93e dlgcy/dlgcy:centos-init :
可以看到本地已經多了個鏡像。這里是將容器提交為鏡像,如果是要將已經存在的鏡像打標簽為新的鏡像,則使用的命令為 docker tag <existing-image> <hub-user>/<repo-name>[:<tag>] 。
現在我們再使用命令 docker push <hub-user>/<repo-name>:<tag> 將提交推送到 dockerhub 服務器上:
到網頁上看看:
可以看到這個鏡像已經傳上去了。
並且,我們本地可以使用該鏡像來創建容器(使用 -p 2333:2333 這種形式進行端口映射):
這樣我們就完成了拉取、提交、推送的完整過程,可見這和 Git 的使用方法是一脈相承的。
同步首發:http://dlgcy.com/docker-hub/