我的第一个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 .
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


