首页 > 代码库 > Docker学习笔记(7-3)Dockerfile的指令(二)
Docker学习笔记(7-3)Dockerfile的指令(二)
学习目标:
Dockfile指令
CMD
ENTRYPOINT
ADD/COPY/VOLUME
WORKDIR/ENV/USER
ONBUILD
Dockerfile
FROM ubuntu:14.04
MAINTAINER liangshengqi “liangshengqi@xxx.com”
ENV REFRESH_DATE 2017-02-05
RUN apt-get update
RUN apt-get install -y nginx
COPY index.html /usr/share/nginx/html
EXPOSE 80
ENTRYPOINT ["/bin/bash","-g","daemon off;"]
###############
用来指定运行时运行的命令
1、CMD(exec模式、shell模式、指定一些参数和entrypoint搭配使用)
RUN 指定的命令构建时运行
CMD 容器运行时执行默认行为,如果docker run指定了运行的命令,CMD指定就不再执行。
如:
CMD ["/bin/bash","-g","daemon off;"]
docker build =t="lexiaofei/df_test3" .
docker run -p 80 --name cmd_test1 -d lexiaofei/df_test3
docker ps
docker run -p 80 --name cmd_test1 -d lexiaofei/df_test3 /bin/bash #改变默认行为,屏蔽了cmd指令的执行
docker ps
2、ENTRYPOINT
ENTRYPOINT [command param1,param2]
ENTRYPOINT command param1,param2
不会被docker run指定指令覆盖!
可以使用entrypoit指定命令,用cmd指定参数,运行时可以在docker run中换掉cmd指定的参数。
最终执行就会使用新的命令行参数
###############
用来设置镜像的目录文件
3、ADD <src> <dest>
将文件/目录复制到docker镜像中。
来源可以是本地地址或远程url,目标路径是镜像中的绝对路径。
有tar解压功能。
4、COPY <src> <dest>
将文件/目录复制到docker镜像中。
来源可以是本地地址或远程url,目标路径是镜像中的绝对路径。
没有tar解压功能,单纯复制推荐使用copy。
COPY index.html /usr/share/nginx/html
5、VOLUME
共享数据
数据持久化
###############
用来设置容器的环境
6、WORKDIR
设置工作目录,entrypoint和cmd的工作目录,
一般指定绝对路径。
指定了相对目录会传递下去。
7、ENV
设置环境变量,构建和运行时都有效。
8、USER
指定镜像会以什么用户执行。
USER user
USER uid
USER user:gid
USER user:group
USER uid:gid
USER uid:group
默认使用root用户。
###############
类似触发器
9、ONBUILD
镜像触发器,
当一个镜像被其他镜像作为基础镜像时执行,会在构建中插入指令。
ONBUILD COPY index.html /usr/share/nginx/html
Docker学习笔记(7-3)Dockerfile的指令(二)