Docker制作镜像的两种方式

(一)docker commit方法

  • 定义
    • 每一次commit都是往版本控制系统里提交一次变更(软件安装和修改)。
  • 步骤
    • (1)启动容器:docker run container_old;
    • (2)进入容器:docker exec -it -d container_old /bin/bash;
    • (3)自定义镜像内容;
    • (4)commit镜像:docker commit container_old container_new:tag;
    • (5)运行镜像:docker run -d -it container_new:tag;
      • container_old:原docker容器名称;
      • container_new:现docker容器名称;
      • tag:自定义版本号;
  • 缺点
    • 容器内部操作,效率较低;
    • 黑箱操作,没有操作记录,不易维护;
    • 镜像会随着修改的增加,越来越庞大;

(二)docker build方法(利用dockerfile文件,推荐)

  • 定义
    • build命令根据给定的Dockerfile和上下文以构建Docker镜像;
  • 步骤
    • (1)Dockerfile文件(由命令行组成,支持#注释)
      • From:指定基础镜像(必须为第一条指令);
      • Run:构建容器时运行指定的命令;注意:多行命令不要写多个RUN,原因是Dockerfile中每一个指令都会建立一层。多少个RUN就构建了多少层镜像,会造成镜像的臃肿、多层,不仅仅增加了构件部署的时间,还容易出错。RUN书写时的换行符是\
      • CMD:容器启动时需要执行的命令(只允许有一条CMD命令);
      • Label:为镜像指定标签;
      • Maintainer:指定作者;
      • Expose:暴露容器运行的监听端口;
      • Env:设置环境变量;
      • Add:把文件复制到镜像中,其中src可以是本地文件或url;
      • Copy:复制命令,src只允许为本地文件;
      • Entrypoint:启动时的默认命令;
      • Workdir:设置工作目录;
      • ...
    • (2)Docker build ImageName FilePath/DockerfileName;
    • (3)Docker run -d -it ImageName;
  • 构建原则
    • 镜像用途集中、单一;
    • 选择合适的基础镜像
    • 完整的注释信息;
    • 标注版本号;
    • 减少镜像层数;
    • 删除临时文件和缓存文件;
    • 合理的指令顺序;

参考链接

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值