Dockerfile是用来快速创建自定义镜像的一种文本格式的配置文件,在持续集成和持续部署时,需要使用Dockerfile生成相关应用程序的镜像
制作镜像的技巧 编辑Dockerfile文件时,
1、合并多个命令为一行 压缩镜像层
2、变化平凡的指令放到后方,不变化的指令放到前方,
节约制作镜像版本的时间,可以生成缓存,提高制作镜像的时间
制作镜像是分层制作,1、操作系统镜像层 2、个业务软件系统镜像层 3、业务之间关联镜像层 使用 docker build 方式 用脚本制作镜像 可以批量 有日志
首先我们选择官方基础系统镜像,一般为alpine 也可以用ubuntu 和busybox(最小但缺少命令)
docker 官方镜像网站 查找系统镜像的版本号
https://hub-stage.docker.com/
====================================
为了方便执行docker build 等复杂命令,
可以制作一个 sh的脚本来统一执行,并生产不同的版本惊喜那个
执行脚本名字可命名为 buile.sh 内容如下
#!/bin/bash
docker build -t mynginx:1.20.0-$1 .
mynginx:1.20.0 是镜像名称和版本
-$1 是生成自制版本的变量 buile.sh 版本变量 如果执行Dockerfile文件内容不变时,会生成新的版本镜像,但上一个镜像名会为空
. 是本目录的Dockerfile文件所在目录
使用如下
./buile.sh v0.3
====================================
养成好的镜像目录分类习惯,按照业务或类型方式划分创建Dockerfile文件目录环境,以便查找Dockerfile文件
mkdir /data/dockerfile/{web/{nginx,apache,tomcat,jdk},system/{alpine,centos,ubuntu,busybox}} -p
tree /data/dockerfile/
/data/dockerfile/
├── system
│ ├── alpine
│ ├── busybox
│ ├── centos
│ └── ubuntu
└── web
├── apache
├── jdk
├── nginx
└── tomcat
首先我们创建一个Dockerfile文件,在对应的应用程序的Dockerfile目录下创建
如:我们要建立nginx的项目,就在/data/dockerfile/web/nginx 下创建一个Dockerfile文件
再执行docker build 是进入该目录 可以省去 书写 Dockerfile目录
进入/data/dockerfile/web/nginx目录
touch Dockerfile #创建文件
Dockerfile的常用命令
ADD 添加本地或远程文件和目录。复制文件到容器,一般复制文件,压缩包自动解压。
ARG