Docker镜像操作命令

Posted zhaoshizi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]

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

 

以上是关于Docker镜像操作命令的主要内容,如果未能解决你的问题,请参考以下文章

Docker基础命令详解——镜像及容器操作

Docker删除报错:Error response from daemon: conflict: unable to delete 08b152afcfae (must be forced)(代码片段

Docker镜像操作命令

003-docker的操作命令-远程镜像仓库命令,本地镜像管理命令

Docker镜像下载&Docker镜像操作常用命令

6docker镜像相关操作命令