dockerfile编译安装httpd
指令
FROM
格式为 FROM <image> 或 FROM <image>:<tag>
LABEL MAINTAINER
格式为 LABEL MAINTAINER <name email_address> ,指定维护者
信息
RUN
格式为
RUN <command> ,RUN ["/bin/bash","-c","echo hello"]
在shell终端中运⾏命令,即/bin/sh -c
或
RUN ["executable","param1","param2"],RUN echo "hello world\nhello tom" > /tmp/abc && \
cat /tmp/abc
使⽤exec执⾏,每条RUN指令将在当前镜像基础上执⾏指定命令,并提交为新的镜像。当命令较⻓时可以使⽤ \ 来换⾏
CMD
CMD ["executable","param1","param2"] 使⽤exec执⾏,推荐⽅式
CMD command param1 param2 在/bin/sh中执⾏,提供给需要交互的应⽤
CMD ["param1","param2"] 提供给ENTRYPOINT的默认参数
EXPOSE
格式为 EXPOSE <port> [<port>...]
EXPOSE 22 80 8443
ENV
格式为 ENV <key> <value> 。指定⼀个环境变量,会被后续RUN指令
使⽤,并在容器运⾏时保持
ENV PG_MAJOR 9.3
ENV PG_VERSION 9.3.4
RUN curl -SL http://example.com/postgres-$PG_VERSION.tar.xz
| tar -xJC /usr/src/postgress && ...
ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH
ENTRYPOINT
ENTRYPOINT command param1 param2(在shell中执⾏)
每个Dockerfile中只能有⼀个ENTRYPOINT
ENTRYPOINT ["/usr/sbin/nginx"]
ADD
ADD <src> <dest>
将复制指定的<src>到容器中的<dest>。
其中<src>可以是Dockerfile所在目录的一个相对路径(文件或目录)
ADD files/* /usr/src/
可以是一个URL
ADD https://downloads.apache.org/apr/apr-util-1.6.1.tar.gz /usr/src/
可以是一个tar文件(会自动解压为目录)
ADD apr-1.7.0.tar.gz /usr/src/
COPY
COPY <src> <dest>
复制本地主机的<src>(为Dockerfile所在目录的相对路径,文件或目录)为容器中的<dest>。目标路径不存在时会自动创建
COPY files /usr/src/
VOLUME
VOLUME ["/data"]
创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据
USER
USER
指定运行容器时的用户名或UID,后续的RUN也会使用指定用户
RUN groupadd -r postgres && useradd -r -g postgres postgres
WORKDIR
指令配置⼯作⽬录
ONBUILD
ONBUILD [INSTRUCTION]
配置当所创建的镜像作为其他镜像的基础镜像时,所执⾏的操作指令
ONBUILD ADD files /usr/src/
目录结构
#现在网上把httpd的三个包下载下来然后创建一个httpd的目录。在httpd的目录下面创建一个files目录放三个安装包。