Docker构建镜像dockfile

Dockerfile指令

指令

描述

指令

描述

FROM

构建的新镜像是基于哪个镜像例如:FROM centos:6

COPY

拷贝文件或目录到镜像,用法同上例如:COPY ./start.sh /start.sh

MAINTAINER

镜像维护者姓名或邮箱地址

例如:MAINTAINER lizhenliang

ENTRYPOINT

运行容器时执行的Shell命令例如:

ENTRYPOINT [“/bin/bash", “-c", “/start.sh"]

ENTRYPOINT /bin/bash -c ‘/start.sh’

RUN

构建镜像时运行的Shell命令例如:

RUN [“yum”, “install”, “httpd”]

RUN yum install httpd

VOLUME

指定容器挂载点到宿主机自动生成的目录或其他容器例如:

VOLUME ["/var/lib/mysql"]

CMD

运行容器时执行的Shell命令例如:

CMD [“-c”, “/start.sh”]

CMD ["/usr/sbin/sshd", "-D"] CMD /usr/sbin/sshd –D

USER

为RUN、CMD和ENTRYPOINT执行命令指定运行用户USER <user>[:<group>] or USER <UID>[:<GID>] 例如:USER lizhenliang

EXPOSE

声明容器运行的服务端口例如:EXPOSE 80 443

WORKDIR

为RUN、CMD、ENTRYPOINT、COPY和ADD设置工作目录 例如:WORKDIR /data

ENV

设置容器内环境变量

例如:ENV MYSQL_ROOT_PASSWORD 123456

HEALTHCHECK

健康检查

HEALTHCHECK --interval=5m --timeout=3s --retries=3 \ CMD curl -f http://localhost/ || exit 1

ADD

拷贝文件或目录到镜像,如果是URL或压缩包会自动下载或自动解压ADD <src>… <dest>

ADD [“<src>”,… “<dest>”]

ADD https://xxx.com/html.tar.gz /var/www/html ADD html.tar.gz /var/www/html

ARG

在构建镜像时指定一些参数例如:

FROM centos:6

ARG user # ARG user=root USER $user

# docker build --build-arg user=lizhenliang Dockerfile .

Build镜像命令

Usage: docker image build [OPTIONS] PATH | URL | - Options:

-t, --tag list # 镜 像 名 称

-f, --file string  # 指定Dockerfile文件位置

示例:

docker build .                                   

docker build -t shykes/myapp .

docker build -t shykes/myapp -f /path/Dockerfile /path

                                                                                构建nginx镜像

FROM centos:7
MAINTAINER www.baidu.com
RUN yum install -y gcc gcc-c++ make openssl-devel pcre-devel 
ADD nginx-1.14.0.tar.gz /tmp

RUN cd /tmp/nginx-1.14.0 && \
./configure --prefix=/usr/local/nginx && make -j 2 && \
make install

RUN rm -rf /tmp/nginx-1.14.0* && yum clean all 
COPY nginx.conf /usr/local/nginx/conf
WORKDIR /usr/local/nginx 
EXPOSE 80
CMD ["./sbin/nginx", "-g", "daemon off;"]

把上面的文档保存为Dockfile

需要把nginx-1.14.0.tar.gz和nginx.conf放到dockfile文件一个目录

构建镜像

docker 构建镜像,   .(点) 表示当前目录,当前构建镜像上下文路径

当前构建镜像上下文路径其实就是,当前docker引擎构建准备的工作目录,默认吧所有的东西都放在一个文件夹下所以用.  就可以了

#docker image build -t     [仓库地址]/名称:tag -f Dockerfile名称   .
docker image  build -t nginx:v1 -f Dockerfile .


猜你喜欢

转载自blog.csdn.net/qq_28710983/article/details/80964519