客快物流大数据项目(十五):DockeFile常用命令

Posted Lansonli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了客快物流大数据项目(十五):DockeFile常用命令相关的知识,希望对你有一定的参考价值。


DockeFile常用命令

客快物流大数据项目(十五):DockeFile常用命令_docker

命令

作用

FROM image_name:tag

定义了使用哪个基础镜像启动构建流程

MAINTAINER user_name

声明镜像的创建者,创建者的用户名和邮箱地址

ENV key value

设置环境变量(可以写多条)

RUN command

是Dockerfile的核心部分(可以写多条)

ADD source_dir/file dest_dir/file

将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压

COPY source_dir/file dest_dir/file

和ADD相似,但是如果有压缩文件并不能解压

WORKDIR path_dir

设置工作目录

一、FROM

指明构建的新镜像是来自于哪个基础镜像,例如:

FROM centos: latest

二、MAINTAINER

指明镜像维护着及其联系方式(一般是邮箱地址),例如:

MAINTAINER JC Zhang <zhangsan@163.com>

不过,MAINTAINER并不推荐使用,更推荐使用LABEL来指定镜像作者,例如:

LABEL maintainer="zhangsan.cn"

三、RUN

构建镜像时运行的Shell命令,例如:

RUN ["yum", "install", "httpd"]
RUN yum install httpd

四、CMD

启动容器时执行的Shell命令,例如:

CMD ["-C", "/start.sh"]
CMD ["/usr/sbin/sshd", "-D"]
CMD /usr/sbin/sshd -D

五、EXPOSE

声明容器运行的服务端口,例如:

EXPOSE 80 443

六、ENV

设置环境内环境变量,例如:

ENV mysql_ROOT_PASSWORD 123456
ENV JAVA_HOME /usr/local/jdk1.8.0_45

七、ADD

拷贝文件或目录到镜像中,例如:

ADD <src>...<dest>

ADD html.tar.gz /var/www/html

ADD https://xxx.com/html.tar.gz /var/www/html

PS:如果是URL或压缩包,会自动下载或自动解压

八、COPY

拷贝文件或目录到镜像中,用法同ADD,只是不支持自动下载和解压,例如:

COPY ./start.sh /start.sh

九、ENTRYPOINT

启动容器时执行的Shell命令,同CMD类似,只是由ENTRYPOINT启动的程序不会被docker run命令行指定的参数所覆盖,而且,这些命令行参数会被当作参数传递给ENTRYPOINT指定指定的程序,例如:

ENTRYPOINT ["/bin/bash", "-C", "/start.sh"]

ENTRYPOINT /bin/bash -C /start.sh

十、VOLUME

指定容器挂载点到宿主机自动生成的目录或其他容器,例如:

VOLUME ["/var/lib/mysql"]

PS:一般不会在Dockerfile中用到,更常见的还是在docker run的时候指定-v数据卷

十一、WORKDIR

为RUN、CMD、ENTRYPOINT以及COPY和AND设置工作目录,例如:

WORKDIR /data


以上是关于客快物流大数据项目(十五):DockeFile常用命令的主要内容,如果未能解决你的问题,请参考以下文章

客快物流大数据项目(六十五):仓库主题

客快物流大数据项目(九十五):ClickHouse的CollapsingMergeTree深入了解

客快物流大数据项目(二十五):初始化业务数据

客快物流大数据项目(三十五):CDH使用注意

客快物流大数据项目(七十五):使用impala创建kudu表

客快物流大数据项目(八十五):实时OLAP分析需求