跳到主要内容

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"]