Docker images详细介绍及管理制作镜像

Docker   images   介绍:


     docker  images 是docker 的三大组件之一

  docker把下载好的镜像上传到docker本地镜像仓库中,如果本地镜像仓库中不存在需要用到的镜像,docker会从一个镜像库中去下载所需镜像,默认的公共仓库是Docker HUB。

Docker image 的内容:

 

  •      使用和管理本地主机上images
  •      创建一个基础的images
  •      上传images到docker hub(公共images仓库)
  •       列出本地主机上已经存在的images


(1.)使用Docker images 显示本机上的images

  • EPOSITORY:来自于哪个仓库,比如Docker.io/centos
  • TAG的标记,比如 latest
  • IMAGE ID:镜像的ID号
  • CREATED:创建时间
  • SIZE:镜像的大小


注意:

一个仓库可能有多个发行版本,比如Ubuntu,他们有10.04、12.04、12.10、

13.04、14.04,每个发行版本的标记都不同,可以使用tag命令来指定images标记

如果不指定具体的发行版本的话,例如就使用Ubuntu,那么Docker会使用最新的发

行版Ubuntu:latest


(2.)获取images


        我们如何获取新的images呢?当我们启动容器使用的image不再本地主机上时,Docker会自动下载它们。这时很耗时,我们可以使用Docker pull命令预先下载我们需要的image

(3.)查找images

Docker的一个特点是很多人因为各种不同的用途创建了各种不同的images。

它们都被上传到了Docker hub公有仓库上,我们可以在Docker hub 的网站上来查找它们。

使用Docker search命令

例如:当我们需要ruby和sinatra作为web应用程序开发时,我们使用Docker  search

来搜索合适的image,使用关键字Sinatra。

我们看到了返回了很多包含Sinatra的images。其中包括image名字、描述、星级(表

示该image的受欢迎程度)、是否官方创建、是否自动创建。官方的images是

stackbrew项目组创建和维护的,automated资源允许你验证image的来源和内容。

到目前为止,我们看到了2种images资源,比如Ubuntu,被称为基础或者根镜像。这

些基础镜像是Docker公司创建、验证、支持、提供。他们往往使用一个单词作为他

们的名字。还有一种类型,比如我们选择的training/Sinatra镜像。他是由Docker的用

户创建并维护的,你可以通过指定image名字的前缀来指定他们,比如training。

(3.)下载images

现在我们指定了一个image, training/Sinatra,我们可以使用docker pull命令来下载它。

下载过程中,会输出获取镜像的每一层信息

该命令实际上相当于#Docker pull register.hub.docker.com/ubuntu:12.04  命令,即从注册服务器register.hub.docker.com 中的Ubuntu仓库来下载标记为 12.04 的镜像。

有时候官方仓库注册服务器下载较慢,可以从其他仓库下载。 从其他仓库下载时需要指定完整的仓库注册服务器地址。

例如: #docker pull dl.dockerpool.com:5000/ubuntu:12.04

查看完整信息:

        当镜像下载成功后,你可以看到12位的hash值镜像

像1d551d635e99,这是下载完整的镜像的精简ID,这些短的镜像ID是完整镜像ID的前12个字符。

可以使用Docker inspect 或者Docker images --no-trunc来获得完整的镜像ID

Docker inspect:

或者

Docker   images  --no-trunc

创建images:

      1.第一种方法:使用Docker commit 来扩展一个新的images


(1.)先使用images启动容器,进到容器里面

(2.)在容器中添加mariadb-server应用。

注意:记住刚才的容器的ID号


安装完成后退出,现在容器已经改变了,更新后的结果提交到新的image。


使用Docker commit 命令来提交相应的副本。


 

其中 -m 来指定提交信息的说明信息,跟使用的版本控制工具一样;-a 可以指定更新的用户信息;之后是用来创建镜像的容器ID;最后指定目标镜像的仓库名和tag标记信息。


使用Docker images查看新创建的镜像:

可以使用新创建好的镜像来启动容器:

 

2.第二种方法:从dockefile来创建image


    (1.)创建一个目录和一个dockefile文件

内容如下:

 

dockerfile基本语法:

使用#来注释

FROM指令告诉docker使用哪个镜像作为基础镜像

MAINTAINER是维护者信心

RUN开头的指令会在创建中运行,比如安装一个软件包,在这里使用yum来安装了一些软件


编写完成dockerfile后可以使用docke build 来生成镜像。

其中 -t  标记来添加tag,指定新的镜像的用户信息。

“.”是dockerfile所在的路径(当前目录),也可以替换为一个具体的dockefile路径。

可以看到build进程在执行操作。他要做的第一件事情就是上传这个dockefile内

容,因为所有的操作都要依据dockefile来进行。然后,dockefile中的指令被一条一

条的执行。每一步都创建了一个新的容器,在容器中执行指令并提交修改(就跟

之前的docker commit一样)。当所有的指令都执行完毕之后,所有中间步骤所产

生的容器都被删除和清理了。最后返回了最终的镜像ID。


*注意:一个镜像不能超过127层。


查看新生成的镜像:



还可以用docker tag 命令来修改镜像的标签:

修改前:

修改后:

3.从本地文件系统导入

    要从本地文件系统导入一个镜像,可以使用openvz(容器虚拟化的先锋技术)的模板来创建

openvz的模板下载地址为http://openvz.org/Download/template/precreated


先下载了一个centos6.tar.gz的镜像,之后使用以下命令导入到本地镜像库


4.上传镜像:


用户可以通过docker push 命令,把自己创建的镜像上传到仓库中来共享。


例如: 用户在Docke hub上进行注册完成后,可以推送自己的镜像到docker hub仓库中。


有两种方式可以创建和注册一个docker hub 仓库账户:


1.通过网站,(https://hub,docker.com


2.通过命令行,输入docker login命令来创建一个Docker HUB 账号


#docker login


邮箱确认:


一旦你填写完毕表格,请查看你的电子邮件,通过点击欢迎信息中的链接来激活您的账户。


基本思路步骤:

(1.)首先注册docker的账户,然后使用docker login登录。

下一步

上传结果:


如果有其他仓库,就输入其他仓库名

例如:docker push  docker.sina.com.cn:5000/commit

5.用docker rmi 移除本地images

注意:在删除images之前要先用docker rm 删掉依赖于这个images容器


 删除容器:

   

删除镜像:

    


6.导出/导入镜像:


  当需要把一台机器上的镜像迁移到另一台机器上的时候,需要导出镜像、导入镜像。

    

   导出镜像:

   

   导入镜像:

    可以使用docker load 从导出的本地文件中再导入到本地镜像库。

    例如:

   

   或者是

  

  

 

 







时间: 2024-08-29 20:43:01

Docker images详细介绍及管理制作镜像的相关文章

Hibernate核心类和接口详细介绍

一.hiobernate核心类和接口预览图 二.hibernate.properties 这个文件是以前老版本使用的 类似于hibernate.cfg.xml文件:作用和hibernate.cfg.xml一致. 三.hibernate.cfg.xml (1)详细介绍 ①该文件主要用于指定各个参数,是hibernate核心文件 ②默认放在src目录下,也可以放在别的目录下. ③指定连接数据库的驱动.用户名.密码.url.连接池.. ④指定对象关系映射文件的位置. ⑤也可使用hibernate.pr

Docker 数据卷,数据卷容器详细介绍

Docker 数据卷,数据卷容器详细介绍 引子 有些时候,我们的服务运行时必不可少的会产生一些日志,或是我们需要把容器内的数据进行备份,甚至多个容器之间进行数据共享,这必然涉及容器的数据管理操作. 容器中管理数据主要有两种方式: 数据卷数据卷容器 数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性: - 数据卷可以在容器之间共享和重用 - 对数据卷的修改会立马生效 - 对数据卷的更新,不会影响镜像 - 卷会一直存在,直到没有容器使用 #(类似linux下的挂载(mount

docker 制作镜像

                                                                                docker 制作镜像 一.docker commit 启动一个容器 [[email protected] docker]# docker run -it --name web ubuntu docker commit 进行提交 [[email protected] docker]# docker commit -m "add files

IntelliLock托管代码保护和许可授权管理系统软件详细介绍及下载

IntelliLock是一个能用于控件与应用程序许可授权的100%托管的先进解决方案.与.NET Reactor提供的基于源代码保护的授权许可系统不同,IntelliLock选择了以100%托管的方式应用许可与保护功能.以这种方式,用户可以无需使用附加文件即可创建单一文件.其灵活的集成策略使得用户可以将完全的许可授权集成入任意已存在的系统中.IntelliLock支持.NET Framework 1.1, 2.0, 3.0 以及 3.5,其也全面支持Compact Framework 2.0 和

《Linux学习并不难》用户管理(2):/etc/passwd文件详细介绍

9.2  <Linux学习并不难>用户管理(2):/etc/passwd文件详细介绍 /etc/passwd文件是Linux系统识别用户的一个重要文件,Linux系统中所有的用户都记录在该文件中.假设用户以账户zhangsan登录系统时,系统首先会检查/etc/passwd文件,看是否有zhangsan这个账户,然后确定用户zhangsan的UID,通过UID来确认用户的身份,如果存在则读取/etc/shadow文件中所对应的密码.如果密码核实无误则登录系统,读取用户的配置文件. 任何用户都可

《Linux学习并不难》用户管理(3):/etc/shadow文件详细介绍

9.3  <Linux学习并不难>用户管理(3):/etc/shadow文件详细介绍 /etc/shadow文件是/etc/passwd的影子文件,这两个文件应该是对应互补的./etc/shadow文件的内容包括用户被加密的密码以及其它/etc/passwd文件不能包括的信息,比如用户账户的有效期限等. /etc/shadow文件只有root用可以读取和操作,文件的权限不能随便更改为其它用户可读,这样做是非常危险的.如果发现这个文件的权限变成了其它组群或用户可读了,要进行检查,以防系统安全问题

Docker制作镜像

Docker制作镜像 本章结构 Docker镜像的分层 Dockerfile基本创建方法 Dockerfile创建各种应用容器 Docker镜像的分层 Dockerfile中的每个指令都会创建一个新的镜像层 镜像层将被缓存和复用 当Dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像缓存就会失效 某一层的镜像缓存失效之后,它的镜像层缓存都会失效 镜像层是不可变的,如果在某一层中添加一个文件,然后在下一层中删除它,则镜像中依然会包含该文件 Docker镜像

6.docker手动制作镜像(基于C6)

1.制作一个基于centOS6版的Nginx镜像(单服务) 11.启动并进入容器 [[email protected] ]# docker run -it -p 80:80 centos:6.9 /bin/bash [[email protected] /]# 1.2更改容器系统的yum源和epel源 [[email protected] /]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Ce

【原创】docker源码分析(3)---镜像(1)

本文QQ空间链接:http://user.qzone.qq.com/29185807/blog/1462342295 本文CSDN博客链接:http://blog.csdn.net/screscent/article/details/51314497 1.简介 镜像无疑是docker中的一个重要角色.在分析源码之前,我们先要了解下image的一些概念.可以参考 http://www.sel.zju.edu.cn/?p=549 docker中,为了复用image,将image做成,可继承的方式.子