• Docker镜像操作命令


    一、使用Docker镜像

    1. 获取镜像

    可以使用docker pull命令直接从Docker Hub镜像源来下载镜像。该命令的格式为docker pull NAME[:TAG]。其中,NAME是镜像仓库的名称(用来区分镜像),TAG是镜像的标签(往往用来表示版本信息)。通常情况下,描述一个镜像需要包括“名称+标签”信息。

    例如,获取一个Ubuntu 18.10系统的基础镜像可以使用如下命令:

    $ docker pull ubuntu:18.10

    对于Docker镜像来说,如果不显式指定TAG,则默认会选择latest标签,这会下载仓库中最新版本的镜像。

    如果从非官方的仓库下载,则需要在仓库名称前指定完整的仓库地址。例如从网易蜂巢的镜像源来下载ubuntu:18.04镜像,可以使用如下命令,此时下载的镜像名称为hub.c.163.com/public/ubuntu:18.04:

    $ docker pull hub.c.163.com/public/ubuntu:18.04

    2. 查询镜像信息

      (1) 使用images命令列出镜像

    $ docker images

      (2) 使用tag命令添加镜像标签

      它们实际指向同一个镜像文件,只是别名不同而已

    $ docker tag ubuntu:latest myubuntu:latest

      (3) 使用inspect命令查看详细信息

    $ docker inspect ubuntu:18.10

      如果只要其中一项内容时,可以使用参数-f来指定,例如,获取镜像的Architecture:

    $ docker inspect -f {{.Architecture"}} ubuntu:18.10

      (4) 使用history命令查看镜像历史,该命令将列出各层的创建信息

    $ docker history ubuntu:18.04

    3. 搜寻镜像

     使用docker search命令可以搜索远端仓库中共享的镜像,默认搜索官方仓库中的镜像。用法为docker search TERM,支持的参数主要包括:

      --automated=true|false:仅显示自动创建的镜像,默认为否;

      --no-trunc=true|false:输出信息不截断显示,默认为否;

      -s,--stars=X:指定仅显示评价为指定星级以上的镜像,默认为0,即输出所有镜像。

      例如,搜索所有自动创建的评价为3以上的带nginx关键字的镜像:

    $ docker search --automated -s 3 nginx

    4. 删除镜像

      (1) 使用标签删除镜像

      使用docker rmi命令可以删除镜像,命令格式为docker rmi IMAGE [IMAGE ...],其中IMAGE可以为标签或ID。

    $ docker rmi ubuntu:latest

      当同一个镜像拥有多个标签的时候,docker rmi命令只是删除该镜像多个标签中的指定标签而已,并不影响镜像文件。当镜像中剩下一个标签的时候要小心,此时再使用docker rmi命令会彻底删除镜像。

      (2) 使用镜像ID删除镜像

      当使用dokcer rmi命令,并且后面跟上镜像的ID(也可以是能进行区分的部分ID串前缀)时,会先尝试删除所有指向该镜像的标签,然后删除该镜像文件本身。当有该镜像创建的容器存在时,镜像文件默认是无法被删除的。

    $ docker rmi 8f

      如果要想强行删除镜像,可以使用-f参数

    $ docker rmi -f ubuntu:18.04

    5. 创建镜像

      创建镜像有三种方法:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建。

      (1) 基于已有镜像的容器创建

      该方法主要是使用docker commit命令。命令格式为docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]],主要选项包括:

        -a,--author="":作息信息;

        -c,--change=[]:提交的时候执行Dockerfile指令,包括CMD|ENTRYPOINT|ENV|EXPOSE|LABEL|ONBUILD|USER|VOLUME|WORKDIR等;

        -m,--message=“”:提交信息;

        -p,--pause=true:提交时暂停容器运行

    $ docker commit -m "Added a new file" -a "Docker Newbee" a925cb40b3f0 test:0.1

      (2) 基于本地模板导入

      用户也可以直接从一个操作系统模板文件导入一个镜像,主要使用docker import命令。命令格式为docker import [OPTIONS] file|URL  | - [REPOSITORY[:TAG]]。

      要直接导入一个镜像,可以使用OpenVZ提供的模板来创建,或者用其他导出的镜像模板来创建。OPENVZ模板的下载地址为http://openvz.org/Download/templates/precreated。

    $ cat ubuntu-14.04-x86_64-minimal.tar.gz | docker import - ubuntu:14.04

    6. 存出和载入镜像

      (1) 存出镜像,docker save

    $ docker save -o ubuntu_14.04.tar ubuntu:14.04

      (2) 载入镜像,docker load,以下两种写法均可

    $ docker load --input ubuntu_14.04.tar
    $ docker load < ubuntu_14.04.tar

    7.  上传镜像

    使用docker push命令上传镜像到仓库,默认上传到Docker hub官方仓库。

    $ docker push NAME[:TAG] | [REGISTRY_HOST[:REGISTRY_RORT]/]NAME[:TAG]

    第一次上传时,会提示输入登录信息或进行注册。

  • 相关阅读:
    CakePHP Model中( 获取Session)使用Component的方法
    EDM站点
    PHP数组中插入元素
    (转)Html邮件CSS指南
    Expected one result (or null) to be returned by selectOne(), but found 2
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    myeclipse 控制台打印空指针 ,黏贴控制台sql到plsql有结果集,异常处理
    target="_blank"
    关于单点登录第一天接触之我见
    model is null
  • 原文地址:https://www.cnblogs.com/zhaoshizi/p/10362048.html
Copyright © 2020-2023  润新知