码迷,mamicode.com
首页 > 其他好文 > 详细

Docker镜像管理

时间:2017-07-09 19:45:26      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:lan   cdh   esc   log   dex   ebs   pxc   dfs   连接   

Docker镜像管理

概念点:

   1.新容器创建后,不依赖镜像就可以运行。镜像默认不删除

   2.镜像所占磁盘空间远小于所有镜像之和。镜像采用分层机制,相同部分独立成层,只需要存储一份就可以了。如下图Postgresql镜像,和Redmine镜像

    技术分享

   3.Docker镜像通过联合文件系统(union filesystem)将各层文件系统叠加在一起,对用户来说就是一个完整的文件系统。如下图

    技术分享

镜像管理命令

  docker images:List images参数-a查看本机已有的所有镜像

  docker history:Show the history of an image查看镜像的分层及每层做的操作(--tree可以查到详细的操作)

Dockerfile

  类似与linux编译中的Makefile,我们可以通过Dockerfile所定义的编译顺序来编译生成镜像

************sameersbn/redisdockerfile***********
FROM sameersbn/ubuntu:14.04.20170228 MAINTAINER sameer@damagehead.com ENV REDIS_USER=redis REDIS_DATA_DIR=/var/lib/redis REDIS_LOG_DIR=/var/log/redis RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y redis-server && sed s/^daemonize yes/daemonize no/ -i /etc/redis/redis.conf && sed s/^bind 127.0.0.1/bind 0.0.0.0/ -i /etc/redis/redis.conf && sed s/^# unixsocket /unixsocket / -i /etc/redis/redis.conf && sed s/^# unixsocketperm 755/unixsocketperm 777/ -i /etc/redis/redis.conf && sed /^logfile/d -i /etc/redis/redis.conf && rm -rf /var/lib/apt/lists/* COPY entrypoint.sh /sbin/entrypoint.sh RUN chmod 755 /sbin/entrypoint.sh EXPOSE 6379/tcp VOLUME ["${REDIS_DATA_DIR}"] ENTRYPOINT ["/sbin/entrypoint.sh"]

  FROM:表示该镜像创建基于何镜像

  MAINTAINER:该镜像创建者

  ENV:设置环境变量

  USER:指定运行容器的用户

  RUN:运行SHELL命令,多条命令用&&连接 

  COPY:将编译机本机文件拷贝到镜像文件系统中

  ADD:将文件<src>拷贝到container的文件系统对应的路径<dest>

    附:COPYADD区别:

      ADD支持网络拷贝;ADD支持解压缩。

  EXPOSE:指定监听的端口

  VOLUME:可以将本地文件夹或者其他container的文件夹挂载到container中。

  WORKDIR:切换目录用,可以多次切换(相当于cd命令),对RUN,CMD,ENTRYPOINT生效

  ENTRYPOINT:制定创建的新容器的启动脚本,只可以有一个ENTRYPOINT,多余只会执行最后一个

  CMD:容器启动后执行的命令,之可以有一个CMD,多条只会执行最后一个;

    CMD的命令会被docker run ... + command最后的command替换,如下图

     技术分享

 

项目中的镜像分层

  技术分享

定制私有的基础镜像

  基础镜像的制作,以ubuntu 14.04(代号为trusty

  镜像代号查询https://en.wikipedia.org/wiki/Ubuntu_version_history

  sudo apt-get install debootstrap

  使用debootstrap制作镜像

  sudo debootstrap --arch amd64 trusty ubuntu-trusty http://mirrors.163.com/ubuntu/

  sudo debootstrap --arch [平台] [发行版本代号] [目录]

  cd ubuntu-trusty

  sudo cp usr/share/zoneinfo/Asia/Shanghai etc/localtime

  更改时区

  cd ubuntu-trusty

  sudo tar -c . | docker import - ubuntu1404-baseimage:1.0

  生成基础镜像并提交生成的基础镜像

  docker images

  查看本地仓库中提交的镜像

  docker run -t -i ubuntu1404-baseimage:1.0 /bin/bash

  启动并进入容器

  cat /etc/issue

  查看时区是否改变

Docker镜像管理

标签:lan   cdh   esc   log   dex   ebs   pxc   dfs   连接   

原文地址:http://www.cnblogs.com/yc913344706/p/7142378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!