docker镜像文件构建技巧思路以及docker-enterpoint.sh入口脚本模版

概述

  • 通过阅读一些优秀的docker镜像,总结归纳出究在封装应用到docker镜像时的一些技巧和方法,分享docker-enterpoint.sh入口脚本模板。
技术背景
  • docker的出现让部署和安装app应用变得非常容易,只需要一个Dockerfile文件,轻松完成对一个app应用的封装。
一个优秀的docker镜像需要具备以下几点特征
  • 高度裁剪
    在满足app运行的情况下,去除掉镜像中不用的服务和软件包,最大程度保持环境的干练性。
  • 灵活配置
    通过加载配置文件或者环境变量方式,实现不同的配置文件和变量,提供不同的服务或功能。
  • 高度复用
    可被多个不同的服务所引用启动,一般建议一个镜像仅仅封装一个app应用即可,通过docker-compose将多个应用进行结合部署,提高镜像使用率
镜像封装方式
  • 一、在容器中直接封装了应用,容器运行时可直接启动应用,此种方式适用于编译完后的可生成二进制程序或war部署包,利用Dockerfile的builder特性,将生成后的二进制程序包拷贝到新的镜像层进行部署

    • 优点:启动快,部署方便,入口脚本编写简单
    • 缺点:由于已经完全部署,生成的镜像文件会比较大点,配置文件目录无法挂载到宿主机,实现持久化。
    • 注意点:docker容器每次变化的有主机名以及ip地址,mac地址,评估这些变动对应用是否有影响。
  • 二、部署操作在容器运行时进行,将所有的软件以及依赖包以文件的形式存放在镜像层中,通过入口执行脚本来执行安装以及配置工作。

    • 优点: 镜像比较小
    • 缺点:脚本编写复杂,第一次启动比较慢
docker-enterpoint.sh 入口模板
Packages=/packages

# 在命令出错时,立即退出,不再往下继续执行指令
set +e
# 使用变量DEBUG_MODE判断是否进入shell调试模式
# 设置变量默认值
DEBUG_MODE=${
   DEBUG_MODE:-"false"}
if [ "${DEBUG_MODE}" == "true" ]; then
    set -o xtrace
fi
# 设置root密码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值