中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

docker~Dockerfile優化程序(xu)的(de)部署

回到目錄

一些理論

我們都知(zhi)道docker這(zhe)個容器工(gong)(gong)具可以幫助我們快速進行環境(jing)的(de)(de)部(bu)署(shu)(shu)(shu),這(zhe)對于運營(ying)人(ren)員(yuan)來說,無疑(yi)是(shi)(shi)(shi)個福(fu)音,而這(zhe)個工(gong)(gong)作大叔(shu)認為(wei)不應該是(shi)(shi)(shi)運營(ying)人(ren)員(yuan)干的(de)(de),而是(shi)(shi)(shi)由開(kai)發(fa)人(ren)員(yuan)來做,因(yin)為(wei)只有你(ni)知(zhi)道你(ni)干的(de)(de)是(shi)(shi)(shi)什么(me),你(ni)干了它,就應該要部(bu)署(shu)(shu)(shu)它,或者把部(bu)署(shu)(shu)(shu)的(de)(de)過(guo)程寫(xie)成一個腳(jiao)本,讓運營(ying)人(ren)員(yuan)去執行,就可以了,這(zhe)也許就是(shi)(shi)(shi)docker產生的(de)(de)原因(yin)吧(ba)!

Dockerfile是為(wei)快(kuai)速構建(jian)docker image而設計的(de),當(dang)你使(shi)用docker build 命令的(de)時候(hou),docker 會讀取當(dang)前目錄下的(de)命名為(wei)Dockerfile(首字母大寫(xie))的(de)純文本(ben)文件并執行(xing)里面的(de)指令構建(jian)出(chu)一個docker image。

Dockerfile的組合可以用一張圖來表示

 

Dockerfile的一些命令

Dockerfile是將一組(zu)腳本組(zu)合在一個(ge)文件(jian)中(zhong),然(ran)后(hou)(hou)(hou)它(ta)讓批量執行,而腳本中(zhong)最重要(yao)的(de)就(jiu)是FROM,它(ta)告訴docker要(yao)啟動哪個(ge)鏡(jing)像,然(ran)后(hou)(hou)(hou)后(hou)(hou)(hou)觀的(de)動作都是針(zhen)對這個(ge)image來執行——我們(men)要(yao)想執行一個(ge)Dockerfile文件(jian),可(ke)以(yi)使用下(xia)面的(de)代碼:

$ docker build -f /path/to/a/Dockerfile .

下(xia)面是從(cong)eshoponcontainer中截取的一個(ge)Dockerfile文件的內容(rong),我們可以(yi)學習(xi)一下(xia)

FROM microsoft/aspnetcore:1.1.2
ARG source
WORKDIR /app
EXPOSE 80
COPY ${source:-obj/Docker/publish} .
ENTRYPOINT ["dotnet", "Basket.API.dll"]

從上面代碼(ma)中,我們看到(dao)Dockerfile有幾個(ge)命(ming)令,下(xia)面具(ju)體說明一下(xia)

FROM
基于哪個鏡像
RUN
安裝軟件用
MAINTAINER
鏡像創建者
CMD
Container啟動時執行的命令,但是一個Dockerfile中只能有一條CMD命令,多條則只執行最后一條CMD.
CMD主要用于container時啟動指定的服務,當Docker run command的命令匹配到CMD command時,會替換CMD執行的命令。
ENTRYPOINT
container啟動時執行的命令,但是一個Dockerfile中只能有一條ENTRYPOINT命令,如果多條,則只執行最后一條
ENTRYPOINT沒有CMD的可替換特性
USER
使用哪個用戶跑container
EXPOSE
container內部服務開啟的端口。主機上要用還得在啟動container時,做host-container的端口映射:
ADD
將文件<src>拷貝到container的文件系統對應的路徑<dest>
所有拷貝到container中的文件和文件夾權限為0755,uid和gid為0
如果文件是可識(shi)別(bie)的壓(ya)縮格式,則docker會幫忙解(jie)壓(ya)縮

如果要ADD本地文(wen)件,則本地文(wen)件必須在 docker build <;PATH>,指定的<PATH>;目錄下(xia)

如果要ADD遠程文件,則遠程文件必須在 docker build <PATH>,指定的<PATH>目錄下。
 注意:使用docker build - < somefile方式進行build,是不能直接將本地文件ADD到container中。只能ADD    url file.
ADD只有在build鏡像的時候運行一次,后面運行container的時候不會再重新加載了。
VOLUME
可以將本地文件夾或者其(qi)他container的文件夾掛載到container中。

WORKDIR
切換目錄用,可以多次切換(相當于cd命令),對RUN,CMD,ENTRYPOINT生效
ONBUILD
ONBUILD 指定的命令在構(gou)建鏡(jing)像時(shi)并不執(zhi)行,而是在它的子鏡(jing)像中(zhong)執(zhi)行

好了,今天就說這么多,總之(zhi)我們(men)要(yao)知(zhi)道,Dockerfile主要(yao)用來快速生成image和快速部署(shu)應(ying)用環境的(de)!

回到目錄

posted @ 2017-06-20 22:24  張占嶺  閱讀(1803)  評論(0)    收藏  舉報