1. 程式人生 > 實用技巧 >資料結構與算法系列(二)-- 演算法

資料結構與算法系列(二)-- 演算法

命令

指令 描述 格式
FROM 構建的新映象基於那個映象 FROM centos:7
MAINTAINER 映象維護者資訊 MAINTAINER syavingc
RUN 構建映象執行的shell命令、命令較長使可以使用\來換行 格式:RUN 或 RUN["executable", "param1", "param2"]RUN yum install nginx
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 將指定的複製到容器檔案系統中的ADD ["",... ""]ADD http.tar.gz /var/www/html
COPY 拷貝檔案或目錄到映象 同上
VOLUME 指定容器掛載點到宿主機自動生成的目錄或其他容器 VOLUME ["/usr/local/mysql"]
USER 指定執行容器時的使用者名稱和UID,後續的RUN指令也會使用這裡指定的使用者。 USER syavingcUSER [:] or USER [:]
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
http://localhost/
|| exit 1
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