日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Docker(五)如何构建Dockerfile

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker(五)如何构建Dockerfile 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘自

https://mp.weixin.qq.com/s/_hq9dPe6390htN8BTkoQeQ

?

一、Dockerfile的指令集

由于Dockerfile中所有的命令都是以下格式:INSTRUCTION argument,指令(INSTRUCTION)不分大小寫,但是約定俗成是大寫的。

1、FROM

FROM是用于制定基礎的images,一般格式為FROM<images> or FROM<IMAGE>:<TAG>?,所以有的Dockerfile都用該以FROM開頭,FROM命令指明Dockerfile所創建的鏡像文件以什么鏡像為基礎,FROM以后的所有指令都會在FROM的基礎上進行創建鏡像。可以在同一個Dockerfile中多次使用FROM命令用于創建多個鏡像。比如我們需要指定python2.7的基礎鏡像,可以像如下寫法一樣:

FROM python:2.7

?

2、MAINTAINER

MAINTAINER是用于指定鏡像創建者和聯系方式,一般格式為MAINTAINER<name>。這里我設置我的ID和郵箱

MAINTAINER AAA <AAA@ffff.com>

?

3、COPY

COPY是用于復制本地主機的<src>(為Dockerfile所在目錄的相對路徑)到容器中的<dest>。當使用本地目錄為源目錄時,推薦使用copy。一般格式為copy <src><dest>。例如我們要拷貝當前目錄到容器中的/app目錄下,我們可以這樣操作

COPY . /app

?

4、WORKDIR

WORKDIR用于配合RUN,CMD,ENTRYPOINT命令設置當前工作路徑。可以設置多次,如果是相對路徑。一般格式為 WORKDIR/path/to/word/dir。

WORKDIR /app

?

5、RUN

RUN pip install -r requirements.txt

?

6、EXPOSE

EXPOSE命令用來指定對外開放的端口。一般格式為EXPOSE<PORT>,例如上面那個例子,開放5000端口:

EXPOSE 5000

?

7、ENTRYPOINT

ENTRYPOINT可以讓你的容器表現得像一個可執行程序一樣。一個Dockerfile中只能有一個ENTRYPOINT,如果有多個,則最后一個生效。格式有兩種

  • ENTRYPOINT["executable", "param1", "param2"]:推薦使用的exec形式
  • ENTRYPOINT command param1 param2: shell形式

?

例如下面這個,我們要將python變成那個可執行的程序,我們可以這樣取做:

ENTRYPOINT ["python"]

?

8、CMD

CMD命令用于啟動容器時默認的執行命令,CMD命令可以包含可執行文件,也可以不包含可執行文件。不包含可執行文件的情況下就要用ENTRYPOINT指定一個,然后CMD命令參數就會作為ENTRYPOINT的參數。

CMD命令有三種格式:

  • CMD["executable", "param1", "param2"]: 推薦使用的exec形式
  • CMD["param1", "param2"]: 無可執行程序形式
  • CMD command param1 param2: shell形式

一個Dockerfile中只能有一個CMD,如果有多個,則最后一個生效。而CMD的shell形式默認調用 /bin/sh -c執行命令。CMD命令會被Docker命令行傳入的參數覆蓋: docker run busybox /bin/ echo Hello Docker會把CMD里的命令覆蓋。

例如我們要啟動 /app,我們可以用如下命令實現:

CMD ["app.py"]

?

二、構建Dockerfile

我們大體已經把Dockerfile的寫法講述完畢,我們可以自己動手寫一個例子:

?

FROM nginx MAINTAINER AAAA <AAAA@FFFF.com> RUN echo 'Hello World' > /usr/share/nginx/html/index.html

?

轉載于:https://www.cnblogs.com/ylxn/p/10510492.html

總結

以上是生活随笔為你收集整理的Docker(五)如何构建Dockerfile的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。