1. 镜像管理

1.1. 列出镜像

  Sudo docker images

  

1.2. 查看镜像

  Sudo docker images xxxx

  

1.3. 拉取镜像

  Sudo docker pull ubuntu

  

1.4. 查找镜像

  Sudo docker search mysql

  

1.5. 删除镜像

  sudo docker rmi xxxxx (force)

  

1.6. 构建镜像

1.6.1. Docker commit

  不推荐,建议使用docker build+ docker file

1.6.2. Docker Build + Dockerfile

  创建static_web目录

  创建Dockerfile配置文件:

  

  Build:

  

1.6.3. 从git仓库构建镜像

  1)  git创建dockerfile

  输入文件内容:

  # vesion: 0.0.1

  FROM ubuntu:14.04

  MAINTAINER Jay Zhan "zhanchenjin.2008@163.com"

  RUN apt-get install -y nginx

  RUN echo 'Hi, I am in you container' > /usr/share/nginx/html/index.html

  EXPOSE 8090

  

  2)  获取github中dockerfile文件的raw链接

  https://raw.githubusercontent.com/duruo850/docker/master/test.dockerfile

  简写

  https://rawgit.com/duruo850/docker/master/test.dockerfile

  3)  使用该链接build

  sudo docker build -t="jay/web_from_git" \

  https://rawgit.com/duruo850/docker/master/test.dockerfile

  

  

  4)  查看镜像

  

  5) 缓存镜像

  Docker的每一次构建都会缓存一个本地的镜像,所以从哪一步出错,就进入前镜像输入该命令即可知道什么问题;

  如果构建过程都是一样的,将采用同一个镜像

  

  如果不想使用缓存,比如apt-get update命令,将不会刷新apt包缓存,这时候需要不使用缓存

  sudo docker build –no-cache -t="jay/web_from_git" .

  6)  从镜像启动容器

  sudo docker run -i -t -p 10080:80 --name static_web2 jay/static_web nginx -g "daemon off;"

  使用宿主机的10080端口映射虚拟机的80端口

  查看宿主机的10080端口效果:

  

  

  和我们nginx的index.html的输出内容一致

  7)  将镜像推送到docker hub

  报错:unauthorized: access to the requested resource is not authorized

  解决:需要使用docker login先登陆

  

  只能上传到docker hub账户对应的仓库(docker hub 账户/xxxxxx),不可以上传到root仓库(xxxxx),

  

  

  

  去docker hub账户查看仓库:

  

1.6.4. 自动构建

  源代码托管于github

  Github代码有变化时,dockerhub自动获取Dockerfile,自动构建docker容器

  Github

  Github代码的根目录需要提供Dockerfile配置文件

  

  DockerHub

  

  

  

  

  

  

1.6.5. Dockerfile指令

  • CMD命令

  CMD指令指定一个容器启动时要运行的命令。和RUN命令有些类似,只是RUN命令是构建是要运行的命令。RUN命令可以覆盖CMD命令

  新建dockerfile:

  

  构建镜像:

  

  启动镜像:

  

  RUN命令覆盖:

  Ls命令覆盖了/bin/bash命令

  • ENTRYPOINT命令

  ENTRYPOINT和CMD命令唯一区别就是不会被RUN命令覆盖

  RUN的命令行的参数会被当做参数再次传递给ENTRYPOINT命令

  RUN可以使用—entrypoint标志覆盖该命令

  • WORKDIR命令

  创建镜像构建新容器时,在容器内部设置一个工作目录,ENTRYPOINT和/或者CMD命令都会在此目录下执行

  RUN可以使用-W标志覆盖该命令

  • ENV命令

  在镜像构建过程中设置环境变量

  环境变量会持久保存到镜像构建的任何容器中

  RUN可以使用-e标志来传递环境变量,这些变量将只会在运行时有效

  • USER命令

  用来指定该镜像的运行用户

  RUN可以使用-u标志来覆盖该变量

  如果不指定用户组,默认用户组为root

  • VOLUME命令

  用来向基于镜像构建的容器添加卷,数据共享功能

  • ADD命令

  用来将构建环境下的文件和目录复制到镜像中,

  可以添加构建环境的任何文件

  会将一些归档文件(gzip,tar,xz,bzip2)等解开,然后再放到目标目录

  如果目录位置不存在的话,Docker将会为我们创建这个全路径,

  ADD命令使得构建缓存变得无效

  • COPY命令

  与ADD命令类似,不过COPY不会像ADD那样去提取和解开归档文件

  只能复制构建目录下的文件,和Dockerfile处于同一个目录

  如果目录位置不存在的话,Docker将会为我们创建这个全路径,

  • ONBUILD命令

  为镜像添加触发器,当一个镜像被当做其他镜像的基础镜像时,该镜像的触发器将会执行

  为了防止递归调用,这些命令不能用在ONBUILD中:FROM, ONBUILD, MAINTAINER等

paas架构之docker——镜像管理的更多相关文章

  1. Docker镜像管理基础篇

    Docker镜像管理基础篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker Images Docker镜像还有启动容器所需要的文件系统及其内容,因此,其用于创建并启 ...

  2. Docker学习第一天(Docker入门&&Docker镜像管理)

    简介 今天小区的超市买零食老板给我说再过几天可能就卖完了我有点诧异,老板又说厂家不生产了emmm 今天总算开始docker了! 1.Docker? 1.什么是Docker Docker 是一个开源的应 ...

  3. Devops(四):Docker 镜像管理

    参考 <Docker中上传镜像到docker hub中> <Docker 镜像管理> <通过容器提交镜像(docker commit)以及推送镜像(docker push ...

  4. 2、docker镜像管理

    Docker镜像管理 镜像是Docker容器的基础,想运行一个Docker容器就需要有镜像.我们上面已经学会了使用search搜索镜像.那么这个镜像是怎么创建的呢? 创建镜像 镜像的创建有以下几种方法 ...

  5. 三、docker镜像管理

    一.docker镜像管理 1.1.镜像搜索-search 从docker镜像仓库模糊搜索镜像 用法: docker search 镜像关键字 [root@zutuanxue ~]# docker se ...

  6. paas架构之docker——容器进程管理

    1.docker进程管理 docker的进程管理命令ps的用法基本和ubuntu系统的用法一致 1.1. 查看docker进程 sudo docker ps –a 1.2. 附着到容器上 Sudo d ...

  7. 004.Docker镜像管理

    一 镜像基本操作 镜像是一个包含程序运行必要依赖环境和代码的只读文件,其本质是磁盘上一系列文件的集合.它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上.镜像是容器运行的基石. 1 ...

  8. Docker镜像管理

    镜像是docker的三大核心概念之一.可以用来创建容器. Docker的镜像实际上由一层一层的文件系统组成,这种层级的文件系统被称为UnionFS.镜像可以基于Dockerfile构建,Dockerf ...

  9. docker镜像管理(二)

    docker镜像 docker镜像含有启动容器所需要的文件系统和内容,因此,其用于创建并启动docker容器 docker镜像采用分层构建机制,最底层为bootfs,其之为rootfs bootfs: ...

随机推荐

  1. 【转载】取消Debian系统自动锁屏

    Linux的自动锁屏功能,会在你离开屏幕的两分钟,甚至更短的时候内,将屏幕锁住,需要输入密码才能进入Linux系统. 可按下图设置,关掉Linux自动锁屏功能 System-->Preferen ...

  2. Click Models for Web Search(2) - Parameter Estimation

    在Click Model中进行参数预估的方法有两种:最大似然(MLE)和期望最大(EM).至于每个click model使用哪种参数预估的方法取决于此model中的随机变量的特性.如果model中的随 ...

  3. HMM 自学教程(八)总结

    本系列文章摘自 52nlp(我爱自然语言处理: http://www.52nlp.cn/),原文链接在HMM 学习最佳范例,这是针对国外网站上一个 HMM 教程的翻译,作者功底很深,翻译得很精彩,且在 ...

  4. 使用 PSD Validator 在线校验 PSD 文件的质量

     PSD Validator 可以帮助你在线校验 PSD 文件的质量,使用的规则来自 Photoshop Etiquette.Photoshop Etiquette 整理了 PSD 文件的规范,例如删 ...

  5. Java泛型数组

    文章来自http://blog.csdn.net/orzlzro/article/details/7017435 Java 不支持泛型数组.也就是说, List<String>[] ls ...

  6. SQL Server 2012:SQL Server体系结构——一个查询的生命周期(第1部分)

    为了缩小读取操作所涉及范围,本文首先着眼于简单的SELECT查询,然后引入执行更新操作有关的附加过程.最后你会读到,优化性能时SQLServer使用还原工具的相关术语和流程. 关系和存储引擎 如图所示 ...

  7. Mysql的NULL的一个注意点

    今天看到一个问题: select a.* from a where (a.id not in (NULL)); 这个sql语句会返回什么? 刚开始以为是返回所有item,但是实际运行下返回是返回emp ...

  8. 基于HTML5技术的电力3D监控应用(三)

    继(一)和(二)之后不少,不少网友问我移动终端的使用问题,因为我们项目这次采用Android平板终端,所以我对这方面有点肤浅的研究,这篇分享些项目经验总结,希望对大家有所帮助. 电力3D项目去年底刚立 ...

  9. .Net魔法堂:史上最全的ActiveX开发教程——发布篇

    一. 前言 接着上一篇<.Net魔法堂:史上最全的ActiveX开发教程——开发篇>,本篇讲述如何发布我们的ActiveX. 二.废话少讲,马上看步骤! 1. 打包  C#开发的Activ ...

  10. Unity3D入门基本概念整理

    1. (1)在场景中添加资源 只需单击工程视图 (Project View) 中的网格(Mesh)并拖动至层级视图 (Hierarchy) 或场景视图 (Scene View),便可将其添加至场景 ( ...