天天看點

Docker 容器化技術介紹(五) 之 Docker 鏡像操作

Docker 容器化技術介紹(一) 之 虛拟化技術

Docker 容器化技術介紹(二) 之 Docker 簡介

Docker 容器化技術介紹(三) 之 Docker 元件

Docker 容器化技術介紹(四) 之 Docker的安裝與啟動

Docker 容器化技術介紹(五) 之 Docker 鏡像操作

Docker 容器化技術介紹(六) 之 Docker 容器操作

Docker 容器化技術介紹(七) 之 Docker 應用部署

Docker 容器化技術介紹(八) 之 Docker 備份與遷移

1 docker 列出鏡像

列出主控端上所存在的鏡像

docker images

[[email protected] home]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx     latest              c82521676580        4 weeks ago         109 MB
           

第一次安裝 docker 的時候是沒有鏡像的,索引我們看到的鏡像資訊是空的,給我們展示出來的每一列代表什麼意思呢?

列名 含義 備注
REPOSITORY 鏡像所在的倉庫名稱
TAG 鏡像标簽 為了區分同一個倉庫下的不同鏡像,Docker 提供了一種稱為标簽(Tag)的功能。每個鏡像在列出來時 都帶有一個标簽,
IMAGE ID 鏡像的 ID
CREATED 建立時間 鏡像的建立日期(不是擷取該鏡像的日期)
SIZE 鏡像大小

注: 這些鏡像都是存儲在 Docker 主控端的/var/lib/docker 目錄下

2 docker 搜尋鏡像

如果你需要從網絡中查找需要的鏡像,可以通過以下指令搜尋

docker search 鏡像名稱
           

搜尋 nginx 鏡像

[[email protected] home]# docker search nginx
INDEX       NAME                                                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/nginx                                                  Official build of Nginx.                        9353      [OK]       
docker.io   docker.io/jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker c...   1387                 [OK]
docker.io   docker.io/richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable ...   609                  [OK]
docker.io   docker.io/jrcs/letsencrypt-nginx-proxy-companion                 LetsEncrypt container to use with nginx as...   396                  [OK]
docker.io   docker.io/kong                                                   Open-source Microservice & API Management ...   219       [OK]       
docker.io   docker.io/webdevops/php-nginx                                    Nginx with PHP-FPM                              111                  [OK]
docker.io   docker.io/kitematic/hello-world-nginx                            A light-weight nginx container that demons...   108                  
docker.io   docker.io/zabbix/zabbix-web-nginx-mysql                          Zabbix frontend based on Nginx web-server ...   63                   [OK]
docker.io   docker.io/bitnami/nginx                                          Bitnami nginx Docker Image                      57                   [OK]
docker.io   docker.io/1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5   ubuntu-16-nginx-php-phpmyadmin-mysql-5          43                   [OK]
docker.io   docker.io/linuxserver/nginx                                      An Nginx container, brought to you by Linu...   38                   
docker.io   docker.io/tobi312/rpi-nginx                                      NGINX on Raspberry Pi / armhf                   20                   [OK]
docker.io   docker.io/blacklabelops/nginx                                    Dockerized Nginx Reverse Proxy Server.          12                   [OK]
docker.io   docker.io/nginxdemos/nginx-ingress                               NGINX Ingress Controller for Kubernetes . ...   11                   
docker.io   docker.io/wodby/drupal-nginx                                     Nginx for Drupal container image                10                   [OK]
docker.io   docker.io/nginxdemos/hello                                       NGINX webserver that serves a simple page ...   8                    [OK]
docker.io   docker.io/webdevops/nginx                                        Nginx container                                 8                    [OK]
docker.io   docker.io/centos/nginx-18-centos7                                Platform for running nginx 1.8 or building...   7                    
docker.io   docker.io/1science/nginx                                         Nginx Docker images that include Consul Te...   4                    [OK]
docker.io   docker.io/centos/nginx-112-centos7                               Platform for running nginx 1.12 or buildin...   4                    
docker.io   docker.io/pebbletech/nginx-proxy                                 nginx-proxy sets up a container running ng...   2                    [OK]
docker.io   docker.io/mailu/nginx                                            Mailu nginx frontend                            1                    [OK]
docker.io   docker.io/toccoag/openshift-nginx                                Nginx reverse proxy for Nice running on sa...   1                    [OK]
docker.io   docker.io/travix/nginx                                           NGinx reverse proxy                             1                    [OK]
docker.io   docker.io/ansibleplaybookbundle/nginx-apb                        An APB to deploy NGINX                          0                    [OK]
           

每一列的含義

列名 含義
NAME 倉庫名稱
DESCRIPTION 鏡像描述
STARS 綜合評分, 反應一個鏡像的受歡迎程度
OFFICIAL 是否官方
AUTOMATED 自動建構,表示該鏡像由 Docker Hub 自動建構流程建立的

上面的搜尋的結果,其實和在 Docker Hub 上面的結果是一樣的,https://hub.docker.com/

Docker 容器化技術介紹(五) 之 Docker 鏡像操作

3 拉取鏡像

        我們拉取鏡像預設是從 Docker Hub 鏡像倉庫上進行擷取的,在 Docker Hub 的官網 https://hub.docker.com/ 上我們可以檢視 Docker 鏡像的一些資訊

Docker 容器化技術介紹(五) 之 Docker 鏡像操作

        國情的原因,國内下載下傳 Docker HUB 官方的相關鏡像比較慢,可以使用國内(docker.io)的一些鏡像加速器,鏡像保持和官方一緻,關鍵是速 度塊,推薦使用。

        常用的鏡像加速器有: Mirror 與 Private Registry

差別如下圖所示:

Private Registry Mirror
Private Registry(私有倉庫)是開發者或者企業自建的鏡像存 儲庫,通常用來儲存企業内部的 Docker 鏡像,用于内部開 發流程和産品的釋出、版本控制 Mirror 是一種代理中轉服務,我們(比如 daocloud)提供的 Mirror 服務,直接 對接 Docker Hub 的官方 Registry。Docker Hub 上有數以十萬計的各類 Docker 鏡像
在使用 Private Registry 時,需要在 Docker Pull 或 Dockerfile 中直接鍵入 Private Registry 的位址,通常這樣會導緻與 Private Registry 的綁定,缺乏靈活性 使用 Mirror 服務,隻需要在 Docker 守護程序(Daemon)的配置檔案中加 入 Mirror 參數,即可在全局範圍内透明的通路官方的 Docker Hub,避免了 對 Dockerfile 鏡像引用來源的修改

        目前國内通路 docker hub 速度上有點尴尬,使用 docker Mirror 勢在必行。現有國内提供 docker 鏡像加速服務的商家有不少,下面重點 ustc 鏡像。

        ustc 是老牌的 linux 鏡像服務提供者了,還在遙遠的 ubuntu 5.04 版本的時候就在用。ustc 的 docker 鏡像加速器速度很快。ustc docker mirror 的優勢 之一就是不需要注冊,是真正的公共服務。https://lug.ustc.edu.cn/wiki/mirrors/help/docker

配置 ustc 鏡像加速器,編輯檔案

vi /etc/docker/daemon.json
           

在配置檔案中配置如下内容

{
    "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
           

重新開機 docker

systemctl restart docker
           

如果重新開機 docker 以後還是無法進行

加速,可以重新 os 在進行嘗試

拉取鏡像指令如下:

docker pull 鏡像名稱
           

拉取 nginx 鏡像

docker pull nginx
           
[[email protected] home]# docker search nginx
INDEX       NAME                                                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/nginx                                                  Official build of Nginx.                        9353      [OK]       
docker.io   docker.io/jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker c...   1387                 [OK]
docker.io   docker.io/richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable ...   609                  [OK]
docker.io   docker.io/jrcs/letsencrypt-nginx-proxy-companion                 LetsEncrypt container to use with nginx as...   396                  [OK]
docker.io   docker.io/kong                                                   Open-source Microservice & API Management ...   219       [OK]       
docker.io   docker.io/webdevops/php-nginx                                    Nginx with PHP-FPM                              111                  [OK]
docker.io   docker.io/kitematic/hello-world-nginx                            A light-weight nginx container that demons...   108                  
docker.io   docker.io/zabbix/zabbix-web-nginx-mysql                          Zabbix frontend based on Nginx web-server ...   63                   [OK]
docker.io   docker.io/bitnami/nginx                                          Bitnami nginx Docker Image                      57                   [OK]
docker.io   docker.io/1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5   ubuntu-16-nginx-php-phpmyadmin-mysql-5          43                   [OK]
docker.io   docker.io/linuxserver/nginx                                      An Nginx container, brought to you by Linu...   38                   
docker.io   docker.io/tobi312/rpi-nginx                                      NGINX on Raspberry Pi / armhf                   20                   [OK]
docker.io   docker.io/blacklabelops/nginx                                    Dockerized Nginx Reverse Proxy Server.          12                   [OK]
docker.io   docker.io/nginxdemos/nginx-ingress                               NGINX Ingress Controller for Kubernetes . ...   11                   
docker.io   docker.io/wodby/drupal-nginx                                     Nginx for Drupal container image                10                   [OK]
docker.io   docker.io/nginxdemos/hello                                       NGINX webserver that serves a simple page ...   8                    [OK]
docker.io   docker.io/webdevops/nginx                                        Nginx container                                 8                    [OK]
docker.io   docker.io/centos/nginx-18-centos7                                Platform for running nginx 1.8 or building...   7                    
docker.io   docker.io/1science/nginx                                         Nginx Docker images that include Consul Te...   4                    [OK]
docker.io   docker.io/centos/nginx-112-centos7                               Platform for running nginx 1.12 or buildin...   4                    
docker.io   docker.io/pebbletech/nginx-proxy                                 nginx-proxy sets up a container running ng...   2                    [OK]
docker.io   docker.io/mailu/nginx                                            Mailu nginx frontend                            1                    [OK]
docker.io   docker.io/toccoag/openshift-nginx                                Nginx reverse proxy for Nice running on sa...   1                    [OK]
docker.io   docker.io/travix/nginx                                           NGinx reverse proxy                             1                    [OK]
docker.io   docker.io/ansibleplaybookbundle/nginx-apb                        An APB to deploy NGINX                          0                    [OK]
           

4 删除鏡像

我們可以删除指定的鏡像也可以删除所有的鏡像

删除指定的鏡像

docker rmi 鏡像名稱/鏡像 ID
           

删除所有的鏡像

docker rmi `docker images -q`
           

注: `` 中間的字元可以被當做 linux 的指令進行解析執行

`docker images -q`擷取的所有鏡像的 ID

[[email protected] home]# docker images -q
c82521676580