乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Docker鏡像

       印度阿三17 2019-07-11

      簡介

        鏡像是Docker的三大核心概念之一。
        Docker運(yùn)行容器前需要本地存在對(duì)應(yīng)的鏡像,如果鏡像不存在本地,Docker會(huì)嘗試先從默認(rèn)鏡像倉庫下載(默認(rèn)使用Docker Hub公共注冊(cè)服務(wù)器中的倉庫),用戶也可以通過配置,使用自定義的鏡像倉庫。
        本章將介紹圍繞鏡像這一核心概念的具體操作,包括如何使用pull命令從Docker Hub倉庫中下載鏡像到本地;如何查看本地已有的鏡像信息;如何在遠(yuǎn)端倉庫使用search命令進(jìn)行搜索和過濾;如何刪除鏡像標(biāo)簽和鏡像文件;如何創(chuàng)建用戶定制的鏡像并且保存為外部文件。最后,還將介紹如何向Docker Hub倉庫中推送自己的鏡像。

      ?

      獲取鏡像

        鏡像是Docker運(yùn)行容器的前提。
        讀者可以使用docker pull命令從網(wǎng)絡(luò)上下載鏡像。該命令的格式為docker pull NAME[:TAG]。對(duì)于Docker鏡像來說,如果不顯式地指定TAG,則默認(rèn)會(huì)選擇latest標(biāo)簽,即下載倉庫中最新版本的鏡像。
        下面,博主將演示如何從Docker Hub的Ubuntu倉庫下載一個(gè)最新的Ubuntu操作系統(tǒng)的鏡像。

      [root@gavin ~]# sudo docker pull ubuntu
      Using default tag: latest
      latest: Pulling from library/ubuntu
      5b7339215d1d: Pull complete 
      14ca88e9f672: Pull complete 
      a31c3b1caad4: Pull complete 
      b054a26005b7: Pull complete 
      Digest: sha256:9b1702dcfe32c873a770a32cfd306dd7fc1c4fd134adfb783db68defc8894b3c
      Status: Downloaded newer image for ubuntu:latest

        該命令實(shí)際上下載的就是ubuntu:latest鏡像,目前最新的18.04版本的鏡像。
        下載過程中可以看出,鏡像文件一般由若干層組成,行首的5b7339215d1d這樣的字串代表了各層的ID。下載過程中會(huì)獲取并輸出鏡像的各層信息。層(Layer)其實(shí)是AUFS(Advanced Union File System,一種聯(lián)合文件系統(tǒng))中的重要概念,是實(shí)現(xiàn)增量保存與更新的基礎(chǔ)。
        讀者還可以通過指定標(biāo)簽來下載特定版本的某一個(gè)鏡像,例如18.04標(biāo)簽的鏡像。

      [root@gavin ~]# sudo docker pull ubuntu:18.04
      18.04: Pulling from library/ubuntu
      Digest: sha256:9b1702dcfe32c873a770a32cfd306dd7fc1c4fd134adfb783db68defc8894b3c
      Status: Downloaded newer image for ubuntu:18.04

        上面兩條命令實(shí)際上都相當(dāng)于sudo docker pull registry.hub./ubuntu:latest命令,即從默認(rèn)的注冊(cè)服務(wù)器registry.hub.中的ubuntu倉庫來下載標(biāo)記為latest的鏡像。

        下載鏡像到本地后,即可隨時(shí)使用該鏡像了,例如利用該鏡像創(chuàng)建一個(gè)容器,在其中運(yùn)行bash應(yīng)用。

      [root@gavin ~]# sudo docker run -t -t ubuntu:latest /bin/bash
      root@74bf842f3c6c:/#

      ?

      查看鏡像信息

        使用docker images命令可以列出本地主機(jī)上已有的鏡像。
        例如,下面的命令列出了本地剛從官方下載的ubuntu:18.04以及ubuntu:latest鏡像。

      [root@gavin ~]# sudo docker images
      REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
      ubuntu              18.04               4c108a37151f        2 weeks ago         64.2MB
      ubuntu              latest              4c108a37151f        2 weeks ago         64.2MB

        在列出信息中,可以看到有幾個(gè)字段信息:

      • 來自于哪個(gè)倉庫,比如ubuntu倉庫。
      • 鏡像的標(biāo)簽信息,比如18.04。
      • 鏡像的ID號(hào)(唯一)。
      • 創(chuàng)建時(shí)間。
      • 鏡像大小。

        其中鏡像的ID信息十分重要,它唯一標(biāo)識(shí)了鏡像。
        TAG信息用于標(biāo)記來自同一個(gè)倉庫的不同鏡像。例如ubuntu倉庫中有多個(gè)鏡像,通過TAG信息來區(qū)分發(fā)行版本,包括14.04、15.04、16.10、17.04、18.04等標(biāo)簽。
        為了方便在后續(xù)工作中使用這個(gè)鏡像,還可以使用docker tag命令為本地鏡像添加新的標(biāo)簽。例如添加一個(gè)新的ubuntu:v1.0鏡像標(biāo)簽如下:

      [root@gavin ~]# sudo docker tag ubuntu:latest ubuntu:v1.0

        再次使用docker images列出本地主機(jī)上鏡像信息,可以看到多了一個(gè)ubuntu:v1.0標(biāo)簽的鏡像。

      [root@gavin ~]# sudo docker images
      REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
      ubuntu              18.04               4c108a37151f        2 weeks ago         64.2MB
      ubuntu              latest              4c108a37151f        2 weeks ago         64.2MB
      ubuntu              v1.0                4c108a37151f        2 weeks ago         64.2MB

        細(xì)心的讀者可能會(huì)注意到,這些不同標(biāo)簽的鏡像的ID是完全一致的,說明它們實(shí)際上指向了同一個(gè)鏡像文件,只是別名不同而已。標(biāo)簽在這里起到了引用或快捷方式的作用。
        使用docker inspect命令可以獲取該鏡像的詳細(xì)信息。

      [root@gavin ~]# sudo docker inspect 4c108a37151f
      [
          {
              "Id": "sha256:4c108a37151f54439950335c409802e948883e00c93fdb751d206c9a9674c1f6",
              "RepoTags": [
                  "ubuntu:18.04",
                  "ubuntu:latest",
                  "ubuntu:v1.0"
              ],
              "RepoDigests": [
                  "ubuntu@sha256:9b1702dcfe32c873a770a32cfd306dd7fc1c4fd134adfb783db68defc8894b3c"
              ],
              "Parent": "",
              "Comment": "",
              "Created": "2019-06-18T22:51:38.340092056Z",
              "Container": "fdea049ea807b599050e885a88784e009ed78ebcc4d498be93744bb9374c6134",
              "ContainerConfig": {
                  "Hostname": "fdea049ea807",
                  "Domainname": "",
                  "User": "",
                  "AttachStdin": false,
                  "AttachStdout": false,
                  "AttachStderr": false,
                  "Tty": false,
                  "OpenStdin": false,
                  "StdinOnce": false,
                  "Env": [
                      "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
                  ],
                  "Cmd": [
                      "/bin/sh",
                      "-c",
                      "#(nop) ",
                      "CMD [\"/bin/bash\"]"
                  ],
                  "ArgsEscaped": true,
                  "Image": "sha256:ae950a0376fe6c4d08fa7ff395f50f4a909e26e9f2d865d8641cda024161c6ee",
                  "Volumes": null,
                  "WorkingDir": "",
                  "Entrypoint": null,
                  "OnBuild": null,
                  "Labels": {}
              },
              "DockerVersion": "18.06.1-ce",
              "Author": "",
              "Config": {
                  "Hostname": "",
                  "Domainname": "",
                  "User": "",
                  "AttachStdin": false,
                  "AttachStdout": false,
                  "AttachStderr": false,
                  "Tty": false,
                  "OpenStdin": false,
                  "StdinOnce": false,
                  "Env": [
                      "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
                  ],
                  "Cmd": [
                      "/bin/bash"
                  ],
                  "ArgsEscaped": true,
                  "Image": "sha256:ae950a0376fe6c4d08fa7ff395f50f4a909e26e9f2d865d8641cda024161c6ee",
                  "Volumes": null,
                  "WorkingDir": "",
                  "Entrypoint": null,
                  "OnBuild": null,
                  "Labels": null
              },
              "Architecture": "amd64",
              "Os": "linux",
              "Size": 64184378,
              "VirtualSize": 64184378,
              "GraphDriver": {
                  "Data": {
                      "LowerDir": "/var/lib/docker/overlay2/c2dab2bd224b9fa08454dd83047c951dc083d7e66cbd3bc121525f90d91aa3f8/diff:/var/lib/docker/overlay2/6247f7d6c45adb4475889cfa641dfc3c917de3a501d7e29c09833bdb98acf3de/diff:/var/lib/docker/overlay2/2adcd34ff16da9a82706938907f6f2bcee53ec5e0e7e6d6b8ee90eea80d635e4/diff",
                      "MergedDir": "/var/lib/docker/overlay2/4d6fe2c8be4a0d1a7afc7a648c8be8dfbda2eb1b621db2b3a2832c5e3aa659f9/merged",
                      "UpperDir": "/var/lib/docker/overlay2/4d6fe2c8be4a0d1a7afc7a648c8be8dfbda2eb1b621db2b3a2832c5e3aa659f9/diff",
                      "WorkDir": "/var/lib/docker/overlay2/4d6fe2c8be4a0d1a7afc7a648c8be8dfbda2eb1b621db2b3a2832c5e3aa659f9/work"
                  },
                  "Name": "overlay2"
              },
              "RootFS": {
                  "Type": "layers",
                  "Layers": [
                      "sha256:ba9de9d8475e7f5e40086358a1353b3cc080994fc6d31e4272dd3acb69b0151e",
                      "sha256:fbd2732ad777cb5db2515fa62b6122b797be233d01db02e0a19e5d894688cad6",
                      "sha256:dda1518598187bf87704acc22aa0ec2a67d9e7835c24346dfca118ab42c5cd0b",
                      "sha256:75e70aa52609fdbd63b58d46d6f7c20470062e1c9bb75616f7703a358a61e5ca"
                  ]
              },
              "Metadata": {
                  "LastTagTime": "2019-07-09T18:06:36.890136591 04:00"
              }
          }
      ]

        docker inspect 命令返回的是一個(gè)JSON格式的消息,如果我們只要其中一項(xiàng)內(nèi)容時(shí),可以使用-f參數(shù)來指定,例如,獲取鏡像的Architecture信息:

      [root@gavin ~]# sudo docker inspect -f {{".Architecture"}} 4c108a37151f
      amd64

      ?

      搜尋鏡像

        使用docker search命令可以搜索遠(yuǎn)端倉庫中共享的鏡像,默認(rèn)搜索Docker Hub官方倉庫中的鏡像。用法為docker search TERM,支持的參數(shù)包括:

      • --automated=false僅顯示自動(dòng)創(chuàng)建的鏡像。
      • --no-trunc=false 輸出信息不截?cái)囡@示。
      • -s,--stars=0指定僅顯示評(píng)價(jià)為指定星級(jí)以上的鏡像。

        例如,搜索帶mysql關(guān)鍵字的鏡像如下所示:

      [root@gavin ~]# sudo docker search mysql
      NAME                              DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
      mysql                             MySQL is a widely used, open-source relation…   8364                [OK]                
      mariadb                           MariaDB is a community-developed fork of MyS…   2866                [OK]                
      mysql/mysql-server                Optimized MySQL Server Docker images. Create…   623                                     [OK]
      percona                           Percona Server is a fork of the MySQL relati…   438                 [OK]                
      centurylink/mysql                 Image containing mysql. Optimized to be link…   60                                      [OK]
      centos/mysql-57-centos7           MySQL 5.7 SQL database server                   57                                      
      mysql/mysql-cluster               Experimental MySQL Cluster Docker images. Cr…   46                                      
      deitch/mysql-backup               Automated and scheduled mysql database dumps…   39                                      [OK]
      tutum/mysql                       Base docker image to run a MySQL database se…   32                                      
      schickling/mysql-backup-s3        Backup MySQL to S3 (supports periodic backup…   28                                      [OK]
      bitnami/mysql                     Bitnami MySQL Docker Image                      27                                      [OK]
      linuxserver/mysql                 A Mysql container, brought to you by LinuxSe…   20                                      
      prom/mysqld-exporter                                                              19                                      [OK]
      centos/mysql-56-centos7           MySQL 5.6 SQL database server                   15                                      
      mysql/mysql-router                MySQL Router provides transparent routing be…   12                                      
      circleci/mysql                    MySQL is a widely used, open-source relation…   12                                      
      arey/mysql-client                 Run a MySQL client from a docker container      10                                      [OK]
      yloeffler/mysql-backup            This image runs mysqldump to backup data usi…   6                                       [OK]
      openshift/mysql-55-centos7        DEPRECATED: A Centos7 based MySQL v5.5 image…   6                                       
      fradelg/mysql-cron-backup         MySQL/MariaDB database backup using cron tas…   4                                       [OK]
      genschsa/mysql-employees          MySQL Employee Sample Database                  2                                       [OK]
      jelastic/mysql                    An image of the MySQL database server mainta…   1                                       
      monasca/mysql-init                A minimal decoupled init container for mysql    0                                       
      widdpim/mysql-client              Dockerized MySQL Client (5.7) including Curl…   0                                       [OK]
      ansibleplaybookbundle/mysql-apb   An APB which deploys RHSCL MySQL                0                                       [OK]

        可以看到返回了很多包含關(guān)鍵字的鏡像,其中包括鏡像名字、描述、星級(jí)(表示該鏡像的受歡迎程度)、是否官方創(chuàng)建、是否自動(dòng)創(chuàng)建等。
        默認(rèn)的輸出結(jié)果將按照星級(jí)評(píng)價(jià)進(jìn)行排序。官方的鏡像說明是官方項(xiàng)目組創(chuàng)建和維護(hù)的,automated資源則允許用戶驗(yàn)證鏡像的來源和內(nèi)容。

      ?

      刪除鏡像

      使用鏡像的標(biāo)簽刪除鏡像

        使用docker rmi命令可以刪除鏡像,命令格式為docker rmi IMAGE [IMAGE...],其中IMAGE可以為標(biāo)簽或ID。
        例如,要?jiǎng)h除掉ubuntu:v1.0鏡像,可以使用如下命令

      [root@gavin ~]# sudo docker rmi ubuntu:v1.0
      Untagged: ubuntu:v1.0

        讀者可能會(huì)擔(dān)心,本地的ubuntu:latest鏡像是否會(huì)受到此命令的影響。無需擔(dān)心,當(dāng)同一個(gè)鏡像擁有多個(gè)標(biāo)簽的時(shí)候,docker rmi命令只是刪除了該鏡像多個(gè)標(biāo)簽中的指定標(biāo)簽而已,并不影響鏡像文件。因此上述操作相當(dāng)于只是刪除了鏡像4c108a37151f的一個(gè)標(biāo)簽而已。
        為保險(xiǎn)起見,再次查看本地的鏡像,發(fā)現(xiàn)ubuntu:latest鏡像(準(zhǔn)確地說,是4c108a37151f鏡像)仍然存在:

      [root@gavin ~]# sudo docker images
      REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
      ubuntu              18.04               4c108a37151f        2 weeks ago         64.2MB
      ubuntu              latest              4c108a37151f        2 weeks ago         64.2MB

        但當(dāng)鏡像只剩下一個(gè)標(biāo)簽的時(shí)候就要小心了,此時(shí)再使用docker rmi命令會(huì)徹底刪除該鏡像。
        假設(shè)本地存在一個(gè)標(biāo)簽為mysql:latest的鏡像,且沒有額外的標(biāo)簽指向它,執(zhí)行docker rmi命令,可以看出它會(huì)刪除這個(gè)鏡像文件的所有AUES層:

      [root@gavin ~]# sudo docker rmi mysql:latest
      Untagged: mysql:latest
      Untagged: mysql@sha256:415ac63da0ae6725d5aefc9669a1c02f39a00c574fdbc478dfd08db1e97c8f1b
      Deleted: sha256:c7109f74d339896c8e1a7526224f10a3197e7baf674ff03acbab387aa027882a
      Deleted: sha256:35d60530f024aa75c91a123a69099f7f6eaf5ad7001bb983f427f674980d8482
      Deleted: sha256:49d8bb533eee600076e3a513a203ee24044673fcef0c1b79e088b2ba43db2c17
      Deleted: sha256:2e7d501ae7df8ee0eca0fe0b16c6e9fad9a3664811445f38f32636b47366eec3
      Deleted: sha256:6a362ed9781f7b3f0c63b061dfb0f14d9ba10d021df10712a131158c103b0d18
      Deleted: sha256:3e58b58898622709169f72e7fa20244e084316f3ee66142728bce3f35bb9538b
      Deleted: sha256:4beb9add2b61bbae54c13e9d9f374b1fe8573226c2fe889bdd5dc8eed19ffbc1
      Deleted: sha256:b3a6af4f3db06bbe8f661019f7dbc354b5e63318fca01d8f1e6218f0afbaa5eb
      Deleted: sha256:037818566b488757260ae3d0064fbf6e47365cd08dc6409b7a018a512ef17f25
      Deleted: sha256:000ec65531a617f550ee04f67c875b70f4b395af00b5f5bb7ed480b17078bc0b
      Deleted: sha256:11d387a2efcce7596530d6be2299b6528b0afe070aba3caf3432ca31c3b0132d
      Deleted: sha256:a883a9d05facd6220d9251787142b41cc6675f247bc47c94071e665adf65dbbf
      Deleted: sha256:cf5b3c6798f77b1f78bf4e297b27cfa5b6caa982f04caeb5de7d13c255fd7a1e

      使用鏡像的ID刪除鏡像

        當(dāng)使用docker rmi命令后面跟上鏡像的ID(也可以是ID能進(jìn)行區(qū)分的部分前綴串)時(shí),會(huì)先嘗試刪除所有指向該鏡像的標(biāo)簽,然后刪除該鏡像文件本身。
        注意,當(dāng)有該鏡像創(chuàng)建的容器存在時(shí),鏡像文件默認(rèn)是無法被刪除的,例如:先利用ubuntu鏡像創(chuàng)建一個(gè)簡單的容器,輸出一句話'hello docker':

      [root@gavin ~]# sudo docker run ubuntu:latest echo 'hello docker'
      hello docker

        使用docker ps -a命令可以看到本機(jī)上存在的所有容器:

      [root@gavin ~]# sudo docker ps -a
      CONTAINER ID        IMAGE               COMMAND                 CREATED             STATUS                     PORTS               NAMES
      f062ef2957f1        ubuntu:latest       "echo 'hello docker'"   2 minutes ago       Exited (0) 2 minutes ago                       sleepy_euler

        可以看到,后臺(tái)存在一個(gè)退出狀態(tài)的容器,是剛基于ubuntu:latest鏡像創(chuàng)建的。
        試圖刪除該鏡像,Docker會(huì)提示有容器正在引用,無法刪除:

      [root@gavin ~]# sudo docker rmi ubuntu:latest
      Untagged: ubuntu:latest

        結(jié)果我們這里刪除成功了,原因是存在相同ID的鏡像(ubuntu:18.04,ubuntu:latest),前面只是刪除了一個(gè)tag(標(biāo)簽),這里我們?cè)賱h除ubuntu:18.04

      [root@gavin ~]# sudo docker rmi ubuntu:18.04
      Error response from daemon: conflict: unable to remove repository reference "ubuntu:18.04" (must force) - container f062ef2957f1 is using its referenced image 4c108a37151f

        果不其然提示有容器正在引用,無法刪除。
        如果要想強(qiáng)行刪除鏡像,可以使用-f參數(shù):

      [root@gavin ~]# sudo docker rmi -f ubuntu:18.04
      Untagged: ubuntu:18.04
      Untagged: ubuntu@sha256:9b1702dcfe32c873a770a32cfd306dd7fc1c4fd134adfb783db68defc8894b3c
      Deleted: sha256:4c108a37151f54439950335c409802e948883e00c93fdb751d206c9a9674c1f6

        博主不推薦使用-f參數(shù)來強(qiáng)制刪除一個(gè)存在容器依賴的鏡像,因?yàn)檫@樣往往會(huì)造成一些遺留問題。
        因此,正確的做法是,先刪除依賴該鏡像的所有容器,再來刪除鏡像。首先刪除容器f062ef2957f1:

      [root@gavin ~]# sudo docker rm f06
      f06

        此時(shí)再使用ID來刪除鏡像,此時(shí)會(huì)正常打印出刪除的各層信息:

      [root@gavin ~]# sudo docker rmi 4c108a37151f
      Untagged: ubuntu:latest
      Untagged: ubuntu@sha256:9b1702dcfe32c873a770a32cfd306dd7fc1c4fd134adfb783db68defc8894b3c
      Deleted: sha256:4c108a37151f54439950335c409802e948883e00c93fdb751d206c9a9674c1f6
      Deleted: sha256:7c1abf1dbbfd02a48330a7317ab45a6091d53e2e9cc062f0f3dbd2b7539947a6
      Deleted: sha256:5a614dda4a54650168ee2cd30ce2e39576dad5c9a0d1907c02445687b4ea5090
      Deleted: sha256:bd042113a73a5c9c6680990740446b7324afb39e243ade3d33bdaa9ffaf8d294
      Deleted: sha256:ba9de9d8475e7f5e40086358a1353b3cc080994fc6d31e4272dd3acb69b0151e

      ?

      創(chuàng)建鏡像

        創(chuàng)建鏡像的方法有三種:基于已有鏡像的容器創(chuàng)建、基于本地模板導(dǎo)入、基于Dockerfile創(chuàng)建。
        本文將重點(diǎn)介紹前兩種方法。最后一種基于Dockerfile創(chuàng)建的方法將在后續(xù)博文中專門予以詳細(xì)介紹。

      基于已有鏡像的容器創(chuàng)建

        該方法主要是使用docker commit命令,其命令格式為docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]],主要選項(xiàng)包括:

      • -a,--author=""作者信息。
      • -m,--message=""提交消息。
      • -p,--pause=true 提交時(shí)暫停容器運(yùn)行。

        下面將演示如何使用該命令創(chuàng)建一個(gè)新鏡像。首先,啟動(dòng)一個(gè)鏡像,并在其中進(jìn)行修改操作,例如創(chuàng)建一個(gè)test文件,之后退出:

      [root@gavin ~]# sudo docker run -ti ubuntu:18.04 /bin/bash
      root@e8382cf8c930:/# touch test
      root@e8382cf8c930:/# exit

        記住容器的ID為:e8382cf8c930。
        此時(shí)該容器跟原ubuntu:18.04鏡像相比,已經(jīng)發(fā)生了改變,可以使用docker commit命令來提交為一個(gè)新的鏡像。提交時(shí)可以使用ID或名稱來指定容器:

      [root@gavin ~]# sudo docker commit -m "Added a new file" -a "Docker Newbee" e8382cf8c930 test:1.0
      sha256:a7f06e6700e36df75ad4dfc952bab4861f35edb840f50aeb3b657d8cc27e9403

        順利的話,命令會(huì)返回新創(chuàng)建的鏡像的ID信息,例如:a7f06e6700e36df75ad4dfc952bab4861f35edb840f50aeb3b657d8cc27e9403
        此時(shí)查看本地鏡像列表,即可看到新創(chuàng)建的鏡像:

      [root@gavin ~]# sudo docker images
      REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
      test                1.0                 a7f06e6700e3        2 minutes ago       64.2MB
      ubuntu              18.04               4c108a37151f        3 weeks ago         64.2MB

      基于本地模板導(dǎo)入

        也可以直接從一個(gè)操作系統(tǒng)模板文件導(dǎo)入一個(gè)鏡像。在這里,推薦使用OpenVZ提供的模板來創(chuàng)建。OPENVZ模板的下載地址為https://wiki./Download/templates/precreated。
        比如,筆者下載了一個(gè)centos:7.0的模板壓縮包后,可以使用以下命令導(dǎo)入:

      [root@gavin data]# sudo cat centos-7-x86_64.tar.gz | docker import - centos:7.0
      sha256:0c4f10b8e790e76e2b60d4afff42248b04abacfb9918109e8b3dc94d72cafda1

        然后查看新導(dǎo)入的鏡像,已經(jīng)在本地存在了:

      [root@gavin data]# sudo docker images
      REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
      centos              7.0                 0c4f10b8e790        About a minute ago   589MB
      test                1.0                 a7f06e6700e3        16 minutes ago       64.2MB
      ubuntu              18.04               4c108a37151f        3 weeks ago          64.2MB

      ?

      存出和存入鏡像

        可以使用docker save和docker load命令來存出和載入鏡像。

      存出鏡像

        如果要存出鏡像到本地文件,可以使用docker save命令。例如,存出本地的ubuntu:18.04鏡像為文件 ubuntu_18.04.tar:

      [root@gavin /]# sudo docker save -o ubuntu_18.04.tar ubuntu:18.04 

      存入鏡像

        可以使用docker load從存出的本地文件中再導(dǎo)入到本地鏡像庫,例如從文件ubuntu_18.04.tar導(dǎo)入鏡像到本地鏡像列表,如下所示:

      [root@gavin /]# sudo docker load --input ubuntu_18.04.tar

        或

      [root@gavin /]# sudo docker load < ubuntu_18.04.tar

        這將導(dǎo)入鏡像以及其相關(guān)的元數(shù)據(jù)信息(包括標(biāo)簽等),可以使用docker images命令進(jìn)行查看。

      ?

      上傳鏡像

        可以使用docker push命令上傳鏡像到倉庫,默認(rèn)上傳到DockerHub官方倉庫(需要登錄),命令格式為docker push NAME[:TAG]。
        用戶在DockerHub網(wǎng)站注冊(cè)后,即可上傳自制的鏡像。例如博主上傳本地的test:1.0鏡像,博主在Docker上注冊(cè)的用戶名是xiaohui1994,可以先給test:1.0添加新的標(biāo)簽xiaohui1994/test:1.0,然后用docker push命令上傳鏡像:

      [root@gavin /]# docker login
      Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub. to create one.
      Username: xiaohui1994
      Password: 
      WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
      Configure a credential helper to remove this warning. See
      https://docs./engine/reference/commandline/login/#credentials-store
      
      Login Succeeded
      [root@gavin /]# sudo docker push xiaohui1994/test:1.0
      The push refers to repository [docker.io/xiaohui1994/test]
      bb817e704dea: Pushed 
      75e70aa52609: Mounted from library/ubuntu 
      dda151859818: Mounted from library/ubuntu 
      fbd2732ad777: Mounted from library/ubuntu 
      ba9de9d8475e: Mounted from library/ubuntu 
      1.0: digest: sha256:ec47f750b7827f9e5483a4ac48d12fadf8cfe05b2e7839d0884b1bbacdf70441 size: 1359

        此時(shí)登錄DockerHub可以看到剛上傳的鏡像:

      ?

      ?

      這篇文章是我學(xué)習(xí) Docker 的記錄,內(nèi)容參考自《Docker技術(shù)入門與實(shí)戰(zhàn)》

      ?

      來源:https://www./content-4-319451.html

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多