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

别裁伪体亲风雅,转益多师是汝师。这篇文章主要讲述客快物流大数据项目(十五):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常用命令)】


    推荐阅读