dockerfileÖÐ×î³£¼ûµÄÖ¸ÁîÊÇʲô
dockerfile ÖÐ×î³£ÓõÄÖ¸ÁîÓУºfrom£º½¨ÉèоµÏñ»òÅÉÉúоµÏñrun£ºÖ´ÐÐÏÂÁװÖÃÈí¼þ¡¢ÉèÖÃϵͳ£©copy£º¸´ÖÆÍâµØÎļþµ½¾µÏñadd£ºÀàËÆ copy£¬¿É×Ô¶¯½âѹËõ tar ´æµµ»ò»ñÈ¡ url Îļþcmd£ºÖ¸¶¨ÈÝÆ÷Æô¶¯Ê±µÄÏÂÁîexpose£ºÉùÃ÷ÈÝÆ÷¼àÌý¶Ë¿Ú£¨µ«²»¹ûÕ棩env£ºÉèÖÃÇéÐαäÁ¿volume£º¹ÒÔØÖ÷»úĿ¼»òÄäÃû¾íworkdir£ºÉèÖÃÈÝÆ÷ÖеÄÊÂÇéĿ¼entrypoint£ºÖ¸¶¨ÈÝÆ÷Æô¶¯Ê±ÒªÖ´ÐеĿÉÖ´ÐÐÎļþ£¨ÀàËÆ cmd£¬µ«²»¿ÉÁýÕÖ£©
Dockerfile ÖÐ×î³£¼ûµÄÖ¸Áî
Dockerfile ÖÐ×î³£ÓõÄÖ¸ÁîÈçÏ£º
1. FROM
½¨ÉèÒ»¸öеÄÈÝÆ÷¾µÏñ»ò´Ó»ù´¡¾µÏñÅÉÉú³öÒ»¸öоµÏñ¡£
ʾÀý£º
FROM ubuntu:20.04
µÇ¼ºó¸´ÖÆ
2. RUN
ÔÚÈÝÆ÷ÖÐÖ´ÐÐÏÂÁͨ³£ÓÃÓÚ×°ÖÃÈí¼þ»òÉèÖÃϵͳ¡£
ʾÀý£º
RUN apt-get update && apt-get install -y nginx
µÇ¼ºó¸´ÖÆ
3. COPY
½«ÍâµØÎļþ»òĿ¼¸´ÖƵ½ÈÝÆ÷¾µÏñÖС£
ʾÀý£º
COPY index.html /usr/share/nginx/html
µÇ¼ºó¸´ÖÆ
4. ADD
Óë COPY ÀàËÆ£¬µ«¿ÉÒÔ×Ô¶¯½âѹËõ tar ´æµµ»ò´Ó URL ÖлñÈ¡Îļþ¡£
ʾÀý£º
ADD myapp.tar.gz /usr/local/myapp
µÇ¼ºó¸´ÖÆ
5. CMD
Ö¸¶¨ÈÝÆ÷Æô¶¯Ê±ÒªÖ´ÐеÄÏÂÁî¡£
ʾÀý£º
CMD ["nginx", "-g", "daemon off;"]
µÇ¼ºó¸´ÖÆ
6. EXPOSE
ÉùÃ÷ÈÝÆ÷½«¼àÌýµÄ¶Ë¿Ú£¬µ«²»»áÏÖ×Åʵ Docker ÊØ»¤³ÌÐòÖйûÕæ¶Ë¿Ú¡£
ʾÀý£º
EXPOSE 80
µÇ¼ºó¸´ÖÆ
7. ENV
ÉèÖÃÇéÐαäÁ¿¡£
ʾÀý£º
ENV APP_NAME myapp
µÇ¼ºó¸´ÖÆ
8. VOLUME
¹ÒÔØÖ÷»úĿ¼»òÄäÃû¾íµ½ÈÝÆ÷ÖС£
ʾÀý£º
VOLUME /var/log/myapp
µÇ¼ºó¸´ÖÆ
9. WORKDIR
ÉèÖÃÈÝÆ÷ÖеÄÊÂÇéĿ¼¡£
ʾÀý£º
WORKDIR /usr/local/myapp
µÇ¼ºó¸´ÖÆ
10. ENTRYPOINT
Ö¸¶¨ÈÝÆ÷Æô¶¯Ê±ÒªÖ´ÐеĿÉÖ´ÐÐÎļþ¡£ÀàËÆÓÚ CMD£¬µ«²»¿ÉÁýÕÖ¡£
ʾÀý£º
ENTRYPOINT ["/usr/local/myapp/bin/myapp"]
µÇ¼ºó¸´ÖÆ
ÒÔÉϾÍÊÇdockerfileÖÐ×î³£¼ûµÄÖ¸ÁîÊÇʲôµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡