1. 程式人生 > 實用技巧 >Docker倉庫常用命令詳解

Docker倉庫常用命令詳解

登入

docker login

通過執行docker login命令來輸入使用者名稱、密碼和郵箱來完成註冊和登入。註冊成功後,本地使用者目錄的.dockercfg中將儲存著使用者認證的資訊。

從倉庫拉取映象

docker pull [映象名]

搜尋映象

docker search [想要搜尋的映象名]

例如:

C:\Users\kunta>docker search centos
NAME                DESCRIPTION                   STARS        OFFICIAL      AUTOMATED
centos               The official build of CentOS.          5605        [OK]       
ansible/centos7-ansible      Ansible on Centos7               123                   [OK]
jdeathe/centos-ssh         OpenSSH / Supervisor / EPEL/IUS/SCL Repos - …  113                   [OK]
consol/centos-xfce-vnc       Centos container with "headless" VNC session…  99                   [OK]
centos/mysql-57-centos7      MySQL 5.7 SQL database server          63                  
imagine10255/centos6-lnmp-php56  centos6-lnmp-php56               57                   [OK]
tutum/centos            Simple CentOS docker image with SSH access   45                  
centos/postgresql-96-centos7    PostgreSQL is an advanced Object-Relational …  39                 
kinogmt/centos-ssh         CentOS with SSH                 29      

我們可以根據映象是否為官方提供的依據,分為兩類。一種是類似centos這樣的基礎映象,稱為基礎或根映象。這些映象是由Docker公司建立、驗證、支援、提供的。

另外一種是類似ansible/centos7-ansible這樣型別的映象,它是由其它非官方的使用者或組織提供的,一般是通過在基礎映象上添加了某些功能然後再提交發布上來供大家使用。像ansible/centos7-ansible這個映象,它是由名為ansible這個使用者或組織維護的,帶有使用者名稱為字首,表明是某個使用者的倉庫。

自動建立

自動建立( Automated Builds)功能對於需要經常升級映象內程式來說十分方便。有時候,使用者建立了映象,安裝了某個軟體,如果軟體釋出新版本則需要手動更新映象。

而自動建立功能使得使用者通過DockerHub指定跟蹤個目標網站(目前支援GitHub或BitBucket)上的專案,一旦專案發現新的提交,則自動執行建立。

要配置自動建立,包括如下的步驟:

  1. 建立並登入Docker Hub, 以及目標網站; *在目標網站中連線帳戶到Docker Hub。
  2. 在Docker Hub中配置一個 自動建立。
  3. 選取一個目標網站中的專案(需要含Dockerfile)和分支。
  4. 指定Dockerfile的位置,並提交建立。

之後,可以在DockerHub的“自動建立"頁面中跟蹤每次建立的狀態。

建立和使用私有倉庫、

安裝Docker後,可以通過官方提供的registry映象來簡單搭建一-套本地私有倉庫環境:

docker run -d -p 5000:5000 registry

docker run 命令執行時如果發現本地沒有對應的映象,則會先去拉取映象再執行。

預設情況下,會將倉庫建立在容器的/tmp/registry目錄下。可以通過-v引數來將映象檔案存放在本地的指定路徑上。
例如下面的例子將上傳的映象放到/opt/data/registry目錄:

docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry 

此時,在本地將啟動- 個私有倉庫服務,監聽埠為5000。

實戰

首先在一臺伺服器機子上搭建好私有倉庫,其地址為10.0.2.2:5000。然後再試圖從機子上上傳和下載映象。
在本地上檢視已有映象:

C:\Users\kunta>docker images
REPOSITORY              TAG         IMAGE ID      CREATED       SIZE
hub.c.163.com/kuntang/lingermarket  latest       c7a70a3810cf    23 months ago    418MB
ubuntu2               16.04        1196ea15dad6    2 years ago     336MB
ubuntu                latest       1196ea15dad6    2 years ago     336MB
hub.c.163.com/public/ubuntu     16.04-tools     1196ea15dad6    2 years ago     336MB
hub.c.163.com/public/centos     6.7-tools      b2ab0ed558bb    2 years ago     602MB

使用docker tag命令把映象的倉庫標記為私有倉庫機子地址(格式為:docker tag IMAGE[:TAG] [REGISTRYHOST/]NAME[:TAG]):

docker tag ubuntu2:16.04 10.0.2.2:5000/test
docker images

使用docker push命令上傳映象:

docker push 10.0.2.2:5000/test

用curl檢視私有倉庫的映象

curl http://10.0.2.2:5000/v1/search

可以看出映象已經上次成功。

現在可以到任意一臺能訪問到10.0.2.2地址的機器去下載這個映象了:

docker pull 10.0.2.2:5000/test

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援碼農教程。