dockerfile 文件编写
- dockerfile 是用来构建 docker 镜像的文件
编写步骤
- 编写 dockerfile 文件
- docker build 构建成为一个镜像
- docker run 运行镜像
- docker push 发布镜像 (可以发布到 dockerhub 或者是 阿里云镜像仓库)
dockerfile 文件
每一个保留关键字 (指令) 都必须是大写
从上往下开始执行
# 表示注释
每一个指令都会创建一个镜像层
常用指令:
FROM # 基础镜像 MAINTAINER # 镜像作者, 一般是姓名<邮箱> RUN # 构建镜像的时候需要运行的命令 ADD # 构建镜像的时候, 需要添加的内容, 比如要在 centos 镜像中添加一个 NGINX, 如果添加的是一个压缩包的话, 会自动解压 WORKDIR # 镜像的工作目录 VOLUME # 挂载的目录 EXPOSE # 端口配置 CMD # 容器启动的时候需要运行的命令, 只有最后一个会生效, 这个最后一个生效, 并不是指在 dockerfile 文件中, 在 dockerfile 文件中仍然可以有多个 CMD 命令, 指的是在使用 docker run 的时候, 后面不能加命令, 如果加了, 那么 docker run 后面的命令将会替换掉 dockerfile 文件中的命令 ENTRYPOINT # 容器启动的时候需要运行的命令, 可以追加命令 ONBUILD # 当构建一个被继承的 dockerfile 的时候, 会运行 ONBUILD 指令 COPY # 将文件拷贝到镜像中 ENV # 构建的时候设置环境变量
案例 (尝试构建自己的 centos)
编写 dockerfile 文件
FROM centos # 基础镜像是 centos MAINTAINER xiaosheng<1029739052@qq.com> # 作者信息 ENV MYPATH /usr/local # 自定义一个变量 MYPATH, 值是 /usr/local WORKDIR $MYPATH # 指定工作目录, 即用户当进去 centos 后所在的目录 RUN yum -y install vim # 安装 vim RUN yum -y install net-tools # 安装 net-tools EXPOSE 80 # 暴露端口 CMD echo $MYPATH CMD echo "===end====" CMD /bin/bash
开始构建
docker build -f dockerfile文件的地址 -t 镜像名:[版本号]
使用
docker history 镜像id
来查看镜像的构建历史
推荐文章: