kingpin 2020-06-14
FROM: 继承基础镜像 MAINTAINER:镜像制作作者信息 RUN: 用来执行shell命令 EXPOSE: 暴露端口号 CMD: 启动容器默认执行的命令,会被覆盖 ENTRYPOINT: 启动容器真正执行的命令,不会被覆盖 VOLUME:创建该挂载点 ENV: 配置环境变量 ADD: 复制文件到容器,一般拷贝文件,压缩包自动解压 COPY:复制文件到容器,一般可拷贝目录 WORKDIR:设置容器的工作目录 USER:容器使用的用户
接下来,列举几个Dockerfile的实例。
Dockerfile文件内容如下所示。
FROM centos:6 MAINTAINER binghe RUN useradd binghe
执行构建,如下所示。
docker build -t centos:user .
Dockerfile文件内容如下所示。
FROM centos:6 MAINTAINER binghe RUN useradd binghe RUN mkdir binghe ENV envir=test version=1.0 CMD echo "envir:$envir version:$version"
执行构建并启动测试:
#执行构建 docker build -t centos:evn-cmd . #启动镜像验证EVN和CMD docker run centos:env-cmd
FROM nginx MAINTAINER binghe ADD ./index.tar.gz /usr/share/nginx/html/ WORKDIR /usr/share/nginx/html
使用COPY拷贝指定目录下的所有文件到容器,不包括本级目录。此时只会拷贝webroot下的所有文件,不会将webroot拷贝过去:
FROM nginx MAINTAINER binghe ADD ./index.tar.gz /usr/share/nginx/html/ WORKDIR /usr/share/nginx/html COPY webroot/ .
设置启动容器的用户,在生产环境中一般不建议使用root用户启动容器,所以,可以根据公司业务场景自定义启动容器的用户:
FROM centos:6 MAINTAINER binghe ADD ./index.tar.gz /usr/share/nginx/html/ WORKDIR /usr/share/nginx/html COPY webroot/ . RUN useradd -m tomcat -u 1001 USER 1001
FROM centos:6 MAINTAINER binghe VOLUME /data
挂载目录到/data,注意:对于宿主机路径,要写绝对路径:
docker run -ti --rm -v `pwd` /web:/data centos:volume bash
如果觉得文章对你有点帮助,请微信搜索并关注「 冰河技术 」微信公众号,跟冰河学习Spring注解驱动开发。公众号回复“spring注解”关键字,领取Spring注解驱动开发核心知识图,让Spring注解驱动开发不再迷茫。