• docker学习3-镜像的基本使用


    前言

    Docker的三大核心概念:镜像、容器、仓库。初学者对镜像和容器往往分不清楚,学过面向对象的应该知道类和实例,这跟面向对象里面的概念很相似
    我们可以把镜像看作类,把容器看作类实例化后的对象。

    docker 面向对象
    镜像
    容器 实例

    查看镜像列表

    使用docker images查看本地已经下载的镜像

    • REPOSITORY:表示镜像的仓库源
    • TAG:镜像的标签,区分不同版本
    • IMAGE ID:镜像ID,16进制组成,唯一标识
    • CREATED:镜像创建时间
    • SIZE:镜像大小
    [root@yoyo ~]# docker images
    REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
    centos/python-36-centos7   latest              b8d15efaa8ec        2 months ago        651MB
    ubuntu                     15.10               9b9cb95443b5        2 years ago         137MB
    training/webapp            latest              6fae60ef3446        4 years ago         349MB
    [root@yoyo ~]# 
    

    我们本地下载的镜像文件是从仓库下载过来的,每个镜像在仓库源都有个名称,也就是 REPOSITORY,同一个镜像源可以有不同的版本,同标签(TAG)区分

    下载镜像

    直接使用 docker pull centos 默认是下载的最新的latest版本

    docker pull centos

    [root@yoyo ~]# docker pull centos
    Using default tag: latest
    latest: Pulling from library/centos
    8ba884070f61: Already exists 
    Digest: sha256:b5e66c4651870a1ad435cd75922fe2cb943c9e973a9673822d1414824a1d0475
    Status: Downloaded newer image for centos:latest
    [root@yoyo ~]# docker images
    REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
    centos/python-36-centos7   latest              b8d15efaa8ec        2 months ago        651MB
    centos                     latest              9f38484d220f        3 months ago        202MB
    ubuntu                     15.10               9b9cb95443b5        2 years ago         137MB
    training/webapp            latest              6fae60ef3446        4 years ago         349MB
    [root@yoyo ~]# 
    

    搜索镜像

    docker search搜索相关的镜像文件

    [root@yoyo ~]# docker search centos
    NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
    centos                             The official build of CentOS.                   5424                [OK]                
    ansible/centos7-ansible            Ansible on Centos7                              121                                     [OK]
    jdeathe/centos-ssh                 CentOS-6 6.10 x86_64 / CentOS-7 7.6.1810 x86…   110                                     [OK]
    consol/centos-xfce-vnc             Centos container with "headless" VNC session…   91                                      [OK]
    imagine10255/centos6-lnmp-php56    centos6-lnmp-php56                              57                                      [OK]
    centos/mysql-57-centos7            MySQL 5.7 SQL database server                   54                                      
    tutum/centos                       Simple CentOS docker image with SSH access      44                                      
    centos/postgresql-96-centos7       PostgreSQL is an advanced Object-Relational …   37                                      
    kinogmt/centos-ssh                 CentOS with SSH                                 27                                      [OK]
    

    如果我想下载一个centos7.5的镜像版本,该如何找到呢?

    查找TAG版本

    如果要找到指定的TAG版本,需打开docker官网https://hub.docker.com/search/?type=image,搜索框输入:centos搜索。
    点击详情,找到TAGS,就可以看到不同的标签版本了

    接下来指定TAG名称下载,后面加个冒号:标签名称

    docker pull centos:centos7.5.1804

    [root@yoyo ~]# docker pull centos:centos7.5.1804
    centos7.5.1804: Pulling from library/centos
    5ad559c5ae16: Pull complete 
    Digest: sha256:7a45e4a1efbaafc1d9aa89925b6fdb33288a96d35ea0581412316e2f0ad3720a
    Status: Downloaded newer image for centos:centos7.5.1804
    [root@yoyo ~]# docker images
    REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
    centos/python-36-centos7   latest              b8d15efaa8ec        2 months ago        651MB
    centos                     centos7.5.1804      cf49811e3cdb        3 months ago        200MB
    centos                     latest              9f38484d220f        3 months ago        202MB
    ubuntu                     15.10               9b9cb95443b5        2 years ago         137MB
    training/webapp            latest              6fae60ef3446        4 years ago         349MB
    [root@yoyo ~]# 
    

    更新镜像

    上面下载的TAG名称是centos7.5.1804,这个太长了不太好记,可以改成一个自己喜欢的TAG名称,比如7.5

    更新镜像需先启动容器

    docker run -d centos:centos7.5.1804

    [root@yoyo ~]# docker run -d centos:centos7.5.1804
    64cc20e825e3cb70bdbb5c22dac72b061fba77895e794ae7a06d57d2ddfb8a96
    [root@yoyo ~]# docker ps -a
    CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS                      PORTS               NAMES
    64cc20e825e3        centos:centos7.5.1804      "/bin/bash"              38 seconds ago      Exited (0) 35 seconds ago                       recursing_ardinghelli
    fefdcbb9c662        centos/python-36-centos7   "container-entrypoin…"   24 hours ago        Exited (0) 24 hours ago                         quirky_cray
    9df329b5effd        centos/python-36-centos7   "container-entrypoin…"   24 hours ago        Exited (0) 24 hours ago                         nifty_roentgen
    

    启动之后,查看到容器id号64cc20e825e3,根据容器id,去修改

    • -m:提交的描述信息
    • -a:指定镜像作者
    • e218edb10161:容器ID
    • runoob/ubuntu:v2:指定要创建的目标镜像名

    docker commit -m="update tag name" -a="yoyo" 64cc20e825e3 centos:7.5

    [root@yoyo ~]# docker commit -m="update tag name" -a="yoyo" 64cc20e825e3  centos:7.5
    sha256:254d4dfe9df7765ccf511bd8e7ff1f5de96b0b5a0af2542ee4cd30c8ac0575b3
    [root@yoyo ~]# docker images
    REPOSITORY                 TAG                 IMAGE ID            CREATED              SIZE
    centos                     7.5                 254d4dfe9df7        8 seconds ago        200MB
    centos                     latest              b9af5ce31055        35 seconds ago       200MB
    centos/python-36-centos7   latest              b8d15efaa8ec        2 months ago         651MB
    ubuntu                     15.10               9b9cb95443b5        2 years ago          137MB
    training/webapp            latest              6fae60ef3446        4 years ago          349MB
    [root@yoyo ~]# 
    

    设置镜像TAG

    如果只是修改镜像TAG名称,可以用docker tag给镜像取个新的tag名称, 这里的id是镜像的id

    docker tag 254d4dfe9df7 centos:v7.5

    [root@yoyo ~]# docker tag 254d4dfe9df7 centos:v7.5
    [root@yoyo ~]# docker images
    REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
    centos                     7.5                 254d4dfe9df7        9 minutes ago       200MB
    centos                     v7.5                254d4dfe9df7        9 minutes ago       200MB
    centos                     latest              b9af5ce31055        9 minutes ago       200MB
    centos/python-36-centos7   latest              b8d15efaa8ec        2 months ago        651MB
    ubuntu                     15.10               9b9cb95443b5        2 years ago         137MB
    training/webapp            latest              6fae60ef3446        4 years ago         349MB
    [root@yoyo ~]# 
    

    这时候会多了一个v7.5的标签

    删除镜像

    上面多了个7.5的TAG,并且IMAGE ID是重复的,可以使用docker rmi 删掉它,可以加-f参数强制删除

    • -f :强制删除;
    • --no-prune :不移除该镜像的过程镜像,默认移除;
    [root@yoyo ~]# docker rmi centos:7.5
    Untagged: centos:7.5
    [root@yoyo ~]# docker images
    REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
    centos                     v7.5                254d4dfe9df7        12 minutes ago      200MB
    centos                     latest              b9af5ce31055        12 minutes ago      200MB
    centos/7.5                 latest              62a395cab78e        13 minutes ago      200MB
    centos/python-36-centos7   latest              b8d15efaa8ec        2 months ago        651MB
    centos                     centos7.5.1804      cf49811e3cdb        3 months ago        200MB
    centos                     <none>              9f38484d220f        3 months ago        202MB
    ubuntu                     15.10               9b9cb95443b5        2 years ago         137MB
    training/webapp            latest              6fae60ef3446        4 years ago         349MB
    [root@yoyo ~]# 
    

    想在别人的基础上重新做一个镜像,需要创建一个 Dockerfile 文件,后面讲 Docker 如何构建我们的镜像。

    python接口QQ群:717225969

  • 相关阅读:
    bash 大致学习后的小案例,导出数据进行打包
    android 处理图片工具
    js屏蔽文本选中产生的蓝色背景色
    修正IE6不支持position:fixed的bug
    TreeView ShowCheckBox [文摘]
    存储过程分页程序
    GridView 72般绝技 很棒的东西 收藏..
    GridView 自带排序分页
    字符串补位
    sql2005 定义临时表
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/11094484.html
Copyright © 2020-2023  润新知