Dockerfile常用指令
docker build命令用于从Dockerfile构建映像。可以在docker build命令中使用-f标志指向文件系统中任何位置的Dockerfile。
例:
docker build -f /path/to/a/Dockerfile
RUN、CMD和ENTRYPOINT指令区别
1\. RUN在building时运行,可以写多条
2\. CMD和ENTRYPOINT在运行container时运行,只能写一条,如果写多条,最后一条生效。
3\. CMD在run时可以被COMMAND覆盖,ENTRYPOINT不会被COMMAND覆盖,但可以指定—entrypoint覆盖
![](73116234A951C6EEB1C6AA9590680EFA.jpg)
\# 基于哪个镜像 FROM java:8
\# 将文件挂载到当前容器 VOLUME /tmp
\# 复制文件到容器根目录"/",并且命名为app.jar ADD eureka-0.0.1-SNAPSHOT.jar /app.jar
\# 声明需要暴露的端口 EXPOSE 8200
\# 配置容器启动后执行的命令,java -jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar”]
docker build -t eureka-server:0.0.1 .
# This my first nginx Dockerfile
# Version 1.0
# Base images 基础镜像
FROM centos
#MAINTAINER 维护者信息
MAINTAINER tianfeiyu
#ENV 设置环境变量
ENV PATH /usr/local/nginx/sbin:$PATH
#ADD 文件放在当前目录下,拷过去会自动解压
ADD nginx-1.8.0.tar.gz /usr/local/
ADD epel-release-latest-7.noarch.rpm /usr/local/
#RUN 执行以下命令
RUN rpm -ivh /usr/local/epel-release-latest-7.noarch.rpm
RUN yum install -y wget lftp gcc gcc-c++ make openssl-devel pcre-devel pcre && yum clean all
RUN useradd -s /sbin/nologin -M www
#WORKDIR 相当于cd
WORKDIR /usr/local/nginx-1.8.0
RUN ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-pcre && make && make install
RUN echo "daemon off;" >> /etc/nginx.conf
#EXPOSE 映射端口
EXPOSE 80
#CMD 运行以下命令
CMD ["nginx"]