資料結構與算法系列(二)-- 演算法
阿新 • • 發佈:2020-11-19
命令
指令 | 描述 | 格式 |
---|---|---|
FROM | 構建的新映象基於那個映象 | FROM centos:7 |
MAINTAINER | 映象維護者資訊 | MAINTAINER syavingc |
RUN | 構建映象執行的shell命令、命令較長使可以使用\來換行 | 格式:RUN |
CMD | 執行容器時執行的shell命令解釋: CMD指定容器啟動是執行的命令,每個Dockerfile只能有一條CMD命令,如果指定了多條,只有最後一條會被執行。如果你在啟動容器的時候也指定的命令,那麼會覆蓋Dockerfile構建的映象裡面的CMD命令。 | CMD ["-c", "start.sh"]CMD ["/usr/sbin/sshd", "-D"]CMD /usr/sbin.sshd -D |
EXPOSE | 生成容器執行的服務埠 | EXPOSE 80 443 |
ENV | 設定容器內環境變數 | ENV MYSQL_ROOT_PASSWORD123456 |
ADD | 拷貝檔案或者目錄到映象,如果是URL或壓縮包會自動下載或者自動解壓 | ADD |
COPY | 拷貝檔案或目錄到映象 | 同上 |
VOLUME | 指定容器掛載點到宿主機自動生成的目錄或其他容器 | VOLUME ["/usr/local/mysql"] |
USER | 指定執行容器時的使用者名稱和UID,後續的RUN指令也會使用這裡指定的使用者。 | USER syavingcUSER |
WORKDIR | 為RUN、CMD、COPY、ADD設定工作目錄 | WORKDIR /data/ |
ENTRYPOINT | 執行容器時執行的shell命令 | ENTRYPOINT ["/bin/bash", "-c", "/start.sh"]ENTRYPOINT /bin/bash -c '/start.sh' |
HEALTHCHECK | 健康檢查 | HEALTHCHECK --interval=5m --timeout=3s\CMD curl -f |
ARG | ARG指定了一個變數在docker build的時候使用,可以使用--build-arg |
ARG |
RUN、CMD和ENTRYPOINT指令區別
1、RUN在building時執行,可以寫多條
2、CMD和ENTRYPOINT在執行container時執行,只能寫一條,如果寫多條,最後一條生效。
3、CMD在RUN時可以被COMMAND覆蓋,ENTRYPOINT不會被COMMAND覆蓋,但可以指定-ENTRYPOINT覆蓋
Build映象
docker build [options] path|url|-
options:
-t --tag list #映象名稱
-f --file string #指定Dockerfile檔案位置
#例項
docker build . #預設找當前目錄以Dockerfile為命名的檔案
docker build -t data/app -t /path/Dockerfile /path
docker build -t data/app - < Dockerfile
docker build -t data/app - < test.tar.gz
docker build -t data/app http://www.syaving.com/Dockerfile
docker build -t data/app http://www.syaving.com/test.tar.gz
基於SSH的映象
FROM centos:6
MAINTAINER syavingc
ENV ROOT_PASSWORD 123456
RUN yum install -y openssh-server
RUN echo $ROOT_PASSWORD |passwd --stdin root
RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
CMD ["/usr/sbin/sshd","-D"]
EXPOSE 22