一、使用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镜像操作命令的更多相关文章

  1. Docker镜像的管理和创建

    1. Docker镜像和Docker容器:      Docker镜像实际上是一系列的文件系统,通常的Linux系统一般是两层文件系统,bootfs和rootfs,bootfs就是bootloader ...

  2. 使用Dockerfile制作自己的Docker镜像

    一.背景 一直以来的开发流程都是先从Docker Hub中获取到基础镜像,之后在这个镜像的基础上做开发,以满足一定的需求或者提供某种服务,并由此产生新的镜像,然后就可以push到Docker Hub中 ...

  3. doris 0.9.0版本docker镜像制作与使用

    1. 安装docker 详情请参见本人博客 2. 编译doris 详情请参见doris官网文档 3. 在编译好的doris output文件夹下编写两个Dockerfile 3.1  Dockerfi ...

  4. 一键清理 Nexus 中无用的 Docker 镜像

    现许多团队使用 Nexus 来管理 Docker 镜像,产品不断迭代,镜像仓库占用的磁盘空间也越来越大.由于 Nexus 的控制台并未提供批量操作镜像功能,清理镜像十分不便.本文分享一个清理 Nexu ...

  5. docker 镜像管理操作

    镜像特点 1. 分层存储的文件 2.一个软件运行环境 3.一个镜像可以创建多个容器 4.一种标准交付 5.不包含Linux内核而又精简的Linux操作系统 6.不是一个单一的文件而是由多层构成的,可以 ...

  6. Docker 常用操作命令

    一. docker安装  方式1 本地安装: 1)下载docker安装文件: 2)执行安装命令  yum localinstall *: 3)安装完之后 重启 systemctl restart do ...

  7. [Docker镜像] 关于阿里云容器镜像服务的使用(以天池比赛提交镜像为例)

    最近在参加天池比赛,由于比赛需要使用阿里云容器镜像服务完成线上预测任务,所以花费了3-4天的时间了解并使用Docker完成相关镜像操作,在此分享下我学习的内容,以下是本文的目录结构: 介绍 镜像 容器 ...

  8. 【docker专栏8】使用IDEA远程管理docker镜像及容器服务

    使用命令行的方式管理服务器镜像及容器是运维人员最常用的方式,但是有的时候我们不得不远程操作docker或者是面向对docker并不熟悉的技术人员提供能力(配置管理员.测试人员),这种情况下图形界面就有 ...

  9. MySQL、MongoDB、Redis数据库Docker镜像制作

    MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...

随机推荐

  1. maya_关于脚本编辑器导入python模块

    import sys for p in sys.path: print p rigDir = 'C:\Users\lenovo\Documents\maya\scripts\python\rigLib ...

  2. Python3的List操作和方法

    列表函数: len(list):列表元素个数 max(list):返回list中最大的元素 min(list):返回list中最小的元素 list(seq):将元组转换为列表 列表方法: list.a ...

  3. C/C++ 控制台字体的变颜变色

    先扔一个链接上来,因为怕忘: https://blog.csdn.net/stude/article/details/7645056 https://blog.csdn.net/lindorx/art ...

  4. Rogue 罗格

    发售年份 1980 平台 多平台 开发商 Michael Toy, Glenn Wichman, Ken Arnold 类型 策略/角色扮演 https://www.youtube.com/watch ...

  5. C# - 匿名对象属性的赋值与取值

    在new出匿名对象的函数内可以直接调用该匿名对象的属性取值. 可是在其它函数就无法调用匿名对象的属性或方法. 这时,我们可以通过c#的反射机制取值: 文章出处:https://www.cnblogs. ...

  6. obs源码uml

  7. eclipse中解决git分支合并冲突

    冲突场景: 在master分支上有文件student.py. 在master上增新一个dev分支 在dev分支上修改文件student.py.增加函数def d():,并commit; 在master ...

  8. HTTP协议初步解析

    一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,定义了Web客户端向Web服务器请求Web页面的 ...

  9. Unity外包团队:U3D与UE我选哪个好?请别再问这种问题了!

    原本预先决定的两家VR游戏公司采访,思熊和星为棋,并没有发现什么共性之初.结果在采访之后却意外发现,两家的经历有着非常相似的地方.他们都是来自于开发游戏所用的引擎的原开发商,比如思熊的主力来自Epic ...

  10. sdk manager更改国内镜像

    两种方法: 一.参考: https://blog.csdn.net/u010165004/article/details/45227019 打开Android SDK Manager,在Tools下的 ...