一、使用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. Django学习笔记之数据库-模型的操作

    模型的操作 在ORM框架中,所有模型相关的操作,比如添加/删除等.其实都是映射到数据库中一条数据的操作.因此模型操作也就是数据库表中数据的操作. 添加模型 添加模型到数据库中.首先需要创建一个模型.创 ...

  2. oracle 中update多个字段

    update  A set (A.a2,A.a3) =(select B.b2,b.b3 from  B where B.b1= A.a1 and A.a3=100 )

  3. Git 基础和原理

    Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余. 在开始学习 Git 的时候,请努力分清你对其它版本管理系统的已 ...

  4. PHP-不同Str 拼接方法性能对比 参考自https://www.cnblogs.com/xiaoerli520/p/9624309.html

    问题 在PHP中,有多种字符串拼接的方式可供选择,共有: 1 . , .= , sprintf, vprintf, join, implode 那么,那种才是最快的,或者那种才是最适合业务使用的,需要 ...

  5. linux 管道通信

    下面举linux下有名管道通信的代码. ----------------------------------------- fifo_read.c =========== #include<er ...

  6. Android Studio中依赖引起错误

    请参阅 https://blog.csdn.net/taowuhua0505/article/details/82424351

  7. maven私库nexus2.3.0-04迁移升级到nexus-3.16.1-02(异机迁移备份)

    环境信息: nexus2.3.0-04安装在32位Windows server 2003系统上 安装位置信息如下: 仓库迁移 Nexus的构件仓库都保存在sonatype-work目录中,nexus2 ...

  8. ArcGIS紧凑型缓存存储格式分析

    by 蔡建良 2018-8-24 网络中我看到的网文将bundle存储切片数据的方式都没说清或是说错.按照错误方法一样可以在桌面浏览,但在arcgis for android却无法浏览. bundlx ...

  9. TNS-12541: TNS: 无监听程序 解决方案

    转自   感谢   https://www.cnblogs.com/yx007/p/6732012.html 问题描述 在用PL/SQL Developer连接Oracle 11g时报错“ORA-12 ...

  10. jar包冲突排解方法(sbt)

    jar包依赖冲突,版本不兼容会导致各种各样的问题.这里推荐一款sbt插件用于查找项目中的jar包依赖关系,通过该插件可以轻松的看出某个jar包依赖哪些jar,以及某个jar被哪些jar所依赖.此外该插 ...