客快物流大数据项目(十五):DockeFile常用命令
Posted Lansonli
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了客快物流大数据项目(十五):DockeFile常用命令相关的知识,希望对你有一定的参考价值。
DockeFile常用命令
命令 | 作用 |
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深入了解