自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Docker基礎(chǔ):Dockerfile相關(guān)知識介紹

開發(fā) 前端 架構(gòu)
Dockfile是一種可以被Docker解釋的腳本文件,Dockerfile其實(shí)由若干條的指令組成,每條指令對應(yīng)Linux下面的一條腳本命令。

?今天給大家整理一下Dockerfile相關(guān)的知識,希望對大家能有所幫助!

1、Dockfile介紹

Dockfile是一種可以被Docker解釋的腳本文件,Dockerfile其實(shí)由若干條的指令組成,每條指令對應(yīng)Linux下面的一條腳本命令。Docker應(yīng)用程序可以將這些指令轉(zhuǎn)化為Linux實(shí)際執(zhí)行的命令。Docker讀取Dockerfile文件的指令然后生成對應(yīng)的docker鏡像。通過dockerfile文件可以比較明確的描述出Docker鏡像是如何一步一步構(gòu)建的。有了Dockerfile,我們可以根據(jù)實(shí)際的因業(yè)務(wù)需要構(gòu)建自己的鏡像并可以添加一些需要執(zhí)行的命令,這樣可以避免后續(xù)的部署工作省去了需要重復(fù)敲命令的繁瑣過程,大大節(jié)約了項(xiàng)目部署的時間成本

2、Dockerfile命令書寫規(guī)則

Dockerfile的指令忽略大小寫,不過建議使用大寫,可以使用#作為指令的注釋,每一行只能表示一條指令,每條指令可以攜帶多個參數(shù)。

3、Dockerfile的指令的分類

根據(jù)作用可以分為兩種,構(gòu)建指令和設(shè)置指令。?

構(gòu)建指令:用于構(gòu)建Docker鏡像,其指定的操作不會在運(yùn)行image的容器上執(zhí)行,屬于鏡像的構(gòu)建過程。。

設(shè)置指令:用于設(shè)置Docker鏡像的屬性,其指定的操作會在運(yùn)行鏡像的容器中執(zhí)行。

4、Dockerfile指令組成

圖片

4.1 From(指定基礎(chǔ)鏡像)

Dockerfile必須指定FROM ,并且是第一行,屬于構(gòu)建命令。

表示基于那個基礎(chǔ)鏡像來構(gòu)建

基礎(chǔ)鏡像可以是本地鏡像也可以是遠(yuǎn)程倉庫的鏡像

語法: FROM image name

4.2 MAINTAINER(指定鏡像作者信息)

用來指定構(gòu)建鏡像的作者信息,方便后續(xù)通過docker inspect命令查看,對鏡像沒有實(shí)際的影響。

語法: MAINTAINER author name

4.3 RUN (指定需要執(zhí)行的shell命令)

該命令會在新創(chuàng)建的鏡像上添加新的層面。docker build 時運(yùn)行。

格式:RUN  command命令

4.4 CMD(設(shè)置容器啟動時執(zhí)行的操作)

可以是執(zhí)行自定義腳本,也可以是執(zhí)行系統(tǒng)命令,該指令只能在文件中存在一次,如果有多個,則只會執(zhí)行最后一條。docker run時運(yùn)行。

格式: CMD ["executable","param1","param2"] 或 CMD ["param1","param2"]

4.5 ENTRYPOINT(設(shè)置容器啟動時執(zhí)行的操作)

設(shè)置指令,指定容器啟動時執(zhí)行的命令,可以追加命令,但是只有最后一個ENTRYPOINT有效。

格式: ENTRYPOINT ["executable", "param1","param2"]

4.6 USER(設(shè)置容器執(zhí)行shell命令的用戶)

設(shè)置指令,設(shè)置啟動該容器的用戶,默認(rèn)是root用戶。

格式:USER root

4.7 EXPOSE(宿主和容器端口映射設(shè)置)

指定容器需要映射到宿主機(jī)器的端口。

格式: EXPOSE port

4.8 ENV(設(shè)置環(huán)境變量)

ENV指令可以用于為docker容器設(shè)置環(huán)境變量。

示例:ENV JAVA/HOME /usr/local/jdk1.8.0.25  指定java環(huán)境變量

4.9 ADD(文件復(fù)制命令)

復(fù)制文件命令,支持自動下載和解壓

格式:ADD  源路徑  目標(biāo)路徑

優(yōu)點(diǎn):在執(zhí)行 <源文件> 為 tar 壓縮文件的話,壓縮格式為 gzip, bzip2 以及 xz 的情況下,會自動復(fù)制并解壓到 <目標(biāo)路徑>。

缺點(diǎn):在不解壓的前提下,無法復(fù)制 tar 壓縮文件。會令鏡像構(gòu)建緩存失效,從而可能會令鏡像構(gòu)建變得比較緩慢。具體是否使用,可以根據(jù)是否需要自動解壓來決定。

說明:參數(shù):destination 是容器內(nèi)的路徑。source 可以是 下載文件的URL 或者宿主主機(jī)的目錄

4.10 COPY

類似ADD命令,將地文件拷貝到鏡像中

本地目錄為源目錄時,官方推薦使用COPY。

4.11 VOLUME (指定掛載點(diǎn))

創(chuàng)建一個可以從本地主機(jī)或其他容器掛載的掛載點(diǎn),用來存放數(shù)據(jù)庫和需要保持的數(shù)據(jù)等

4.12 WORKDIR(設(shè)置工作目錄)

指定RUN、CMD與ENTRYPOINT 命令的工作目錄。

格式:  WORKDIR  /path/to/workdir

5、完整的Dockerfile示例

5.1 創(chuàng)建mytomcat文件

FROM centos
#設(shè)置作者
MAINTAINER xiaoming admion@qq.com
#拷貝tomcat jdk 到鏡像內(nèi)并解壓
ADD apache-tomcat-8.5.30.tar.gz /usr/local/tomcat
ADD jdk-8u202-linux-x64.tar.gz /usr/local/jdk
#設(shè)置工作目錄
ENV MYPATH /usr/local
WORKDIR $MYPATH
#配置jdk 和tomcat的環(huán)境變量
ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_202
ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-8.5.30
ENV CATALINA_BASE /usr/local/tomcat/apache-tomcat-8.5.30
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
#設(shè)置暴露的端口
EXPOSE 8080
#運(yùn)行tomcat
CMD /usr/local/tomcat/apache-tomcat-8.5.30/bin/startup.sh && tail -f /usr/local/tomcat/apache-tomcat-8.5.30/logs/catalina.out

5.2 構(gòu)建鏡像

docker build -f mytomcat -t xm/tomcat:1.8 .

注意:docker build 命令最后要有一個.  

5.3 運(yùn)行鏡像?

docker run -d -p 8080:8080 --name mytomcat1.8
-v /usr/local/tomcat/logs:/usr/local/tomcat/apache-tomcat-8.5.30/logs/
-v /usr/local/tomcat/webapps:/usr/local/tomcat/apache-tomcat-8.5.30/webapps/
xm/tomcat:1.8

責(zé)任編輯:武曉燕 來源: IT技術(shù)分享社區(qū)
相關(guān)推薦

2018-04-20 15:24:55

DockerfileDocker鏡像

2009-09-07 16:20:35

CCNA認(rèn)證培訓(xùn)

2021-10-24 11:11:30

Spring開源Java開發(fā)

2021-02-06 23:03:58

SQLServer數(shù)據(jù)庫變量

2022-01-26 06:59:46

SFTP操作系統(tǒng)加密算法

2011-11-04 17:26:12

2009-11-17 17:07:01

PHP關(guān)聯(lián)數(shù)組

2009-08-11 15:17:12

C#基礎(chǔ)知識

2009-08-13 15:40:28

C#基礎(chǔ)知識

2009-11-05 09:51:14

WCF基礎(chǔ)

2015-07-17 16:49:13

OpenStack開源云平臺云計(jì)算

2022-08-04 07:25:22

Docker部署項(xiàng)目

2022-09-01 07:15:48

docker匿名掛載

2022-12-09 07:13:20

2022-03-30 08:37:32

Python函數(shù)編程自定義函數(shù)

2011-06-24 14:34:56

SEO

2009-12-21 13:03:06

向量路由協(xié)議

2011-09-02 11:23:54

ADSL網(wǎng)速帶寬測試網(wǎng)速測試

2011-09-02 10:37:15

Oraclesqlload用法

2009-11-25 11:14:12

PHP二維數(shù)組賦值
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號