1. 程式人生 > 其它 >python請求nginx basic認證的頁面

python請求nginx basic認證的頁面

指令清單:

FROM,定義使用哪個基礎映象來啟動構建流程。

MAINTAINER,宣告映象的建立者。

RUN,構建映象的核心部分,定義需要做哪些事情來構建映象。

ADD,將宿主機的檔案複製到容器內,如果是一個壓縮檔案,將會在複製後自動解壓。

COPY,類似ADD的作用。

WORKDIR,設定當前工作目錄,可定義多個,類似cd命令。

VOLUME,設定卷,掛載主機目錄。

EXPOSE,指定對外暴露的埠

ENV,設定環境變數。

CMD,指定這個容器啟動時候要執行的命令,只有最後一個生效,可被替代。

ENTRYPOINT,指定這個容器啟動時候要執行的命令,可追加命令。

詳解:

COPY

[--chown=:]

:可選引數,使用者改變複製到容器內檔案的擁有者和屬組。

<> COPY [--chown=<user>:<group>] <源路徑1>... <目標路徑>
<> COPY [--chown=<user>:<group>] ["<源路徑1>",... "<目標路徑>"]

ADD

ADD 指令和 COPY 的使用格類似。功能也類似,不同之處如下:

<> ADD 的優點:在執行 <原始檔> 為 tar 壓縮檔案的話,壓縮格式為 gzip, bzip2 以及 xz 的情況下,會自動複製並解壓到 <目標路徑>。

<> COPY的缺點:在不解壓的前提下,無法複製 tar 壓縮檔案。

CMD

類似於 RUN 指令,用於執行程式,但二者執行的時間點不同:

<> CMD 在docker run 時執行。

<> RUN 是在 docker build。

CMD為啟動的容器指定預設要執行的程式,程式執行結束,容器也就結束。CMD 指令指定的程式可被 docker run 命令列引數中指定要執行的程式所覆蓋。但是,如果 Dockerfile 中如果存在多個 CMD 指令,僅最後一個生效。

示例:

<1>,CMD <shell 命令>
<2>,CMD ["<可執行檔案或命令>","<param1>","<param2>",...]    //一般使用這種格式
<3>,CMD ["<param1>","<param2>",...]   //該寫法是為 “ENTRYPOINT” 指定的程式提供預設引數

ENTRYPOINT

類似於 CMD 指令,但其不會被 docker run 的命令列引數指定的指令所覆蓋,而且這些命令列引數會被當作引數送給 ENTRYPOINT 指定的程式。但是, 如果執行 docker run 時使用了 --entrypoint 選項,將覆蓋 ENTRYPOINT 指定的程式。優點是在執行 docker run 的時候可以指定 ENTRYPOINT 執行所需的引數。但需注意,如果 Dockerfile 中如果存在多個 ENTRYPOINT 指令,僅最後一個生效。

格式:ENTRYPOINT ["<executeable>","<param1>","<param2>",...]

另外,ENTRYPINT可搭配CMD命令使用,一般是變參才會使用 CMD ,這裡的 CMD 等於是在給 ENTRYPOINT 傳參。

示例:

FROM nginx

ENTRYPOINT ["nginx", "-c"]     //定參。不傳參執行docker run,容器引用映象預設的/etc/nginx/nginx.conf啟動程序。
CMD ["/etc/nginx/change.conf"]     //變參。傳參執行,引用新的conf檔案。

<1>,不傳參執行:docker run nginx:1.23.2,容器內會預設執行 nginx -c /etc/nginx/nginx.conf 來啟動主程序。

<2>,傳參執行:docker run nginx:1.32.2 -c /etc/nginx/change.conf ,容器內會預設執行 nginx -c /etc/nginx/change.conf 來啟動主程序。

ENV 

設定環境變數,定義了環境變數,那麼在後續的指令中,就可以使用這個環境變數。

<> ENV <key> <value>
<> ENV <key1>=<value1> <key2>=<value2>...

示例:

ENV MYPATH /usr/local

WORKDIR $MYPATH  

CMD ehco $MYPATH

ARG

構建引數,與 ENV 作用一致。不過作用域不一樣。ARG 設定的環境變數僅對 Dockerfile 內有效,也就是說只有 docker build 的過程中有效,構建好的映象內不存在此環境變數。

使用構建命令 docker build 時,可以用 --build-arg <引數名>=<值> 來覆蓋。

VOLUME

定義匿名資料卷。在啟動容器時忘記掛載資料卷,會自動掛載到匿名卷;避免重要的資料,因容器重啟而丟失,這是非常致命的; 避免容器不斷變大。

格式:

<> VOLUME ["<路徑1>", "<路徑2>"...]
<> VOLUME <路徑>

另外,使用docker run的時候,可以通過 -v 引數修改掛載點。

EXPOSE

申明暴露哪些埠。幫助映象使用者理解這個映象服務的守護埠,以方便配置對映。在執行時使用隨機埠對映時,也就是 docker run -P 時,會自動隨機對映 EXPOSE 的埠。

格式:EXPOSE <埠1> <埠2>...

WORKDIR

指定工作目錄。用 WORKDIR 指定的工作目錄,會在構建映象的每一層中都存在,所以WORKDIR 指定的工作目錄,必須是提前建立好的。docker build 構建映象過程中的每一個 RUN 命令都是新建的一層。只有通過 WORKDIR 建立的目錄才會一直存在。

格式:WORKDIR <工作目錄路徑>

USER

用於指定執行後續命令的使用者和使用者組,這邊只是切換後續命令執行的使用者(使用者和使用者組必須提前已經存在)。

格式:USER <使用者名稱>:<使用者組>

HEALTHCHECK

用於指定某個程式或者指令來監控 docker 容器服務的執行狀態。

<> HEALTHCHECK [選項] CMD <命令>:設定檢查容器健康狀況的命令
<> HEALTHCHECK NONE:如果基礎映象有健康檢查指令,使用這行可以遮蔽掉其健康檢查指令

<> HEALTHCHECK [選項] CMD <命令> : 這邊 CMD 後面跟隨的命令使用,可以參考 CMD 的用法。

結束。