docker-Dockerfile文件詳解

Dockerfile文件詳解mysql

  • FROM //指定基於哪一個基礎鏡像

格式 FROM <image> 或 FROM <image>:<tag>
示例:linux

FROM centos
FROM centos:latest
  • MAINTAINER //指定做者信息

格式 MAINTAINER <name>
示例:nginx

MAINTAINER apeng apeng@apenglinux.com
  • RUN //鏡像操做指令

格式 RUN <command> 或 RUN ["executable","param1","param2"]
示例:sql

RUN yum install httpd
RUN ['/bin/bash',"-c","echo hello"]
  • CMD
    CMD ["executable","param1","param2"]
    CMD command param1 apram2
    CMD ["param1","param2"]
    示例:
CMD ["/bin/bash","/usr/local/nginx/sbin/nginx","-c","/usr/local/nginx/conf/nginx.conf"]
  • EXPOSE
    格式爲 EXPOSE <port>[<port>...]
    示例:docker

    //指定要映射出去的端口
    // -P 自動分配端口
    // -p 指定具體的端口
    EXPOSE 22 80 9000
  • ENV

格式 ENV <key> <value>
示例:centos

ENV PATH /usr/local/mysql/bin:$PATH
  • ADD
    格式 add <src><dest>bash

    ADD <conf/vhosts></usr/local/nginx/conf>
  • COPY

格式同ADD
不支持urlide

  • ENTRYPOINT

容器啓動時要執行的命令,它和CMD很像,也是有一條生效,若是寫多個只有一條有效。和CMD不一樣是:
CMD是能夠被docker run指令覆蓋的,而ENTRYPOINT不能覆蓋
如,容器名爲 apeng
咱們在Dockerfile中指定以下CMD
CMD ["/bin/echo","test"]
啓動容器的命令是docker run -it apeng /bin/bash 什麼都不輸出
ENTRYPOINT不會覆蓋,並且會比CMD或者docker run指定的命令要靠前執行
ENTRYPOINT ["echo","test"]
docker run -it apeng 123
則會輸出 test 123,這至關於要執行命令echo test 123url

  • VOLUME

格式 VOLUME ["/data"]
建立一個能夠從本機或其餘容器掛載的掛載點code

  • USER

格式 USER daemon
指定運行容器的用戶

  • WORKDIR

格式 WORKDIR /path/to/workdir爲後續的RUN、CMD、ENTRYPOINT指定工做目錄

相關文章
相關標籤/搜索