一般的,Dockerfile 分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。
官网学习
https://docs.docker.com/engine/reference/builder/#usage
FROM
必须为第一个命令,指定基础镜像
FROM FROM :FROM @FROM scratch #制作base ImageFROM centos #使用base ImageFROM centos:7.9FROM mysql:5.6
尽量使用官方的image作为base image!那是经得起考验的!
LABEL
给镜像添加信息。使用docker inspect可查看镜像的相关信息
LABEL maintainer="394498036@qq.com"LABEL version="1.0"LABEL description="This is description 欢迎关注:编程坑太多,我在等你."
其实就类似咱们写代码的注释,很多人写代码不愿意写注释,其实写注释对自己的负责,过段时间翻坑的时候,想想当初的意思,容易很快的解决,所以一定要写LABEL
RUN
构建镜像时执行的命令
RUN yum update && yum install -y vim python-dev #反斜线换行RUN apt-get update && apt-get install -y perl pwgen --no-install-recommends && rm -rf /var/lib/apt/lists/* #注意清理cacheRUN /bin/bash -c 'source $HOME/.bashrc;echo $HOME'
为了美观,复杂的RUN请用反斜线换行,避免无用分层,合并多条命令成一行!
WORKDIR
工作目录
WORKDIR /test #如果没有会自动创建test目录WORKDIR jianshuRUN pwd #输出结果应该是/test/jianshu
用WORKDIR,不要用RUN cd 尽量使用绝对目录!
ADD and COPY
- 将本地文件添加到容器中,identity, gzip, bzip2,xz,tar.gz,tgz等类型的文件将被添加tar -x命令,进行解压
- 同ADD,只是不会解压文件。
ADD ... ADD ["