我的第一个dockerfile
下文笔者讲述编写第一个dockerfile的简介说明,如下所示
Dockerfile简介
dockerfile用于创建镜像文件 用docker build 执行 获得一个自定义的镜像 用run 命令运行镜像例:
FROM scratch //定义基础镜像为scratch CMD ["/bin/bash"] //运行bin/bash
dockerfile文件参数说明
FROM 基础镜像,指定创建镜像是基于哪一个镜像 MAINTAINER 镜像维护人的信息,邮箱和名称 RUN 容器构建时需要执行的命令 EXPOSE 暴露出镜像的实例服务端口号 WORDDIR 指定创建容器后,终端默认登录进来后的工作目录 当没有指定默认工作目录是根目录 ENV 用来在构建镜像过程中设置环境变量 ADD 相对于 COPY ,不但复制而且并进行加压 将宿主机目录下文件 copy 进镜像并自动处理 url 和解压 tar 压缩包 COPY 直接复制,类似 ADD copy文件和目录到镜像中 将从构建上下文目录中<源路径>的文件/目录 复制到新的一层的镜像内的<目标路径>位置 VOLUME 容器数据卷,用于数据保存和持久化 CMD 指定一个容器启动时要运行的命令 但是 ENTRYPOINT 的区别是在 dockerfile 可以有多个 CMD 命令,CMD 会被 docker run 之后的参数替换 ENTRYPOINT 指定一个容器启动时要运行的命令, ONBUILD 当构建一个被继承的 dockerfile 时运行命令 父镜像在被子继承后父镜像的 onbuild 被触发例:
创建一个 Ubuntu 登录后默认路径 vim 编辑器 查看网络配置ifconfig支持
FROM centos MAINTAINER zidea ENV mpath=/tmp WORKDIR ${mpath} RUN yum -y install vim RUN yum -y install net-tools EXPOSE 80 CMD [ "/bin/bash" ]
docker build -f Dockerfile -t mycentos:1.0 .
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。