成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Dockerfile:Docker中構(gòu)建鏡像用到的文本文檔

開發(fā) 前端
在我們進(jìn)行JavaEE開發(fā)的時(shí)候,經(jīng)常使用Maven或者Gradle進(jìn)行包管理,當(dāng)我們需要某一個(gè)包時(shí),只需在Maven或者Gradle添加該包的唯一標(biāo)識(shí),這個(gè)包就能從遠(yuǎn)程倉庫拉取到本地,搭建私服的也會(huì)先從私服里拉取該包。當(dāng)我們自己封裝了一個(gè)比較好的包,也可以通過這些工具推送給遠(yuǎn)程倉庫。正好,Docker鏡像的拉取或者推送也是相同的原理。

 在我們進(jìn)行JavaEE開發(fā)的時(shí)候,經(jīng)常使用Maven或者Gradle進(jìn)行包管理,當(dāng)我們需要某一個(gè)包時(shí),只需在Maven或者Gradle添加該包的唯一標(biāo)識(shí),這個(gè)包就能從遠(yuǎn)程倉庫拉取到本地,搭建私服的也會(huì)先從私服里拉取該包。當(dāng)我們自己封裝了一個(gè)比較好的包,也可以通過這些工具推送給遠(yuǎn)程倉庫。正好,Docker鏡像的拉取或者推送也是相同的原理。

 

 

[[279729]]

通過前兩章的講解,相信大家對(duì)于Docker的相關(guān)概念、常用命令有了基本的了解,也知道怎么從遠(yuǎn)程 Pull 一個(gè)鏡像,那遠(yuǎn)程的鏡像是怎么來的呢?如果我們想自己創(chuàng)建一個(gè)鏡像又該怎么做呢?今天就來說一說Dockerfile!Dockerfile 是一個(gè)包含用戶能夠構(gòu)建鏡像的所有命令的文本文檔,它有自己的語法以及命令,Docker 能夠從 Dockerfile 中讀取指令自動(dòng)的構(gòu)建鏡像!

Dockerfiler的本質(zhì)是一個(gè)文本文檔,既然是一個(gè)文本文檔,就要了解這個(gè)文檔的編寫規(guī)則,也就是對(duì) Dockerfile 的語法和命令需要了解,下面就來說一說它的相關(guān)指令!

1、FROM

  1. 語法: 
  2. FROM <image> [AS<name>]  
  3. FROM <image>[:<tag>][AS <name>]  
  4. FROM<image>[@<digest>] [AS <name>]  

from就是從哪里來,對(duì)于Docker官方說法就是指定基礎(chǔ)鏡像,當(dāng)前鏡像是基于哪個(gè)鏡像創(chuàng)建的,有點(diǎn)類似 Java 中的類繼承。FROM 指令必是 Dockerfile 文件中的首條命令。

2、MAINTAINER

  1. 語法: 
  2. MAINTAINER <name>  

鏡像維護(hù)者的信息,已經(jīng)舍棄該指令。

3、LABEL

  1. 語法: 
  2. LABEL<key>=<value><key>=<value><key>=<value> ...  

4、ENV

ENV  ENV = ...

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

5、WORKDIR

  1. WORKDIR /path/to/workdir  

設(shè)置工作目錄,在該指令后的 RUN、CMD、ENTRYPOINT, COPY、ADD 指令都會(huì)在該目錄執(zhí)行。如果該目錄不存在,則會(huì)創(chuàng)建!

6、RUN

  1. RUN <command>  
  2.   RUN ["executable","param1""param2"]  

RUN 會(huì)在當(dāng)前鏡像的最上面創(chuàng)建一個(gè)新層,并且能執(zhí)行任何的命令,然后對(duì)執(zhí)行的結(jié)果進(jìn)行提交。提交后的結(jié)果鏡像在 Dockerfile 的后續(xù)步驟中可以使用。

7、ADD

  1. ADD[--chown=<user>:<group>] <src>... <dest>  
  2.   ADD[--chown=<user>:<group>] ["<src>",..."<dest>"]  

從宿主機(jī)拷貝文件或者文件夾到鏡像,也可以復(fù)制一個(gè)網(wǎng)絡(luò)文件!如果拷貝的文件是一個(gè)壓縮包,會(huì)自動(dòng)解壓縮!

8.COPY

  1. COPY[--chown=<user>:<group>] <src>... <dest>  
  2.   COPY[--chown=<user>:<group>] ["<src>",..."<dest>"]  

從宿主機(jī)拷貝文件或者文件夾到鏡像,不能復(fù)制網(wǎng)絡(luò)文件也不會(huì)自動(dòng)解壓縮!

9、VOLUME

  1. VOLUME ["/data"]  

VOLUME 用于創(chuàng)建掛載點(diǎn),一般配合 run 命令的 -v 參數(shù)使用。

10、EXPOSE

  1. EXPOSE <port>[<port>/<protocol>...]  

指定容器運(yùn)行時(shí)對(duì)外暴露的端口,但是該指定實(shí)際上不會(huì)發(fā)布該端口,它的功能是鏡像構(gòu)建者和容器運(yùn)行者之間的記錄文件。

回到容器命令中的 run 命令部分,run 命令有 -p 和 -P 兩個(gè)參數(shù)。

如果是 -P 就是隨機(jī)端口映射,容器內(nèi)會(huì)隨機(jī)映射到 EXPOSE 指定的端口;如果是 -p 就是指定端口映射,告訴運(yùn)維人員容器內(nèi)需要映射的端口號(hào)。

11、CMD

  1. CMD["executable","param1","param2"]  
  2.  CMD["param1","param2"]  
  3.  CMD command param1 param2  

指定容器啟動(dòng)時(shí)默認(rèn)運(yùn)行的命令,在一個(gè) Dockerfile 文件中,如果有多個(gè) CMD 命令,只有一個(gè)最后一個(gè)會(huì)生效!

12、ENTRYPOINT

  1. ENTRYPOINT["executable""param1""param2"]  
  2.  ENTRYPOINT command param1 param2  

這個(gè)指令與 CMD 指令類似,都是指定啟動(dòng)容器時(shí)要運(yùn)行的命令,如果指定了 ENTRYPOINT,則 CMD 指定的命令不會(huì)執(zhí)行!

在一個(gè) Dockerfile 文件中,如果有多個(gè) ENTRYPOINT 命令,也只有一個(gè)最后一個(gè)會(huì)生效!不同的是通過 docker run command 命令會(huì)覆蓋 CMD 的命令!

執(zhí)行的命令不會(huì)覆蓋 ENTRYPOINT,docker run 命令中指定的任何參數(shù)都會(huì)被當(dāng)做參數(shù)傳遞給 ENTRYPOINT!

RUN、CMD、ENTRYPOINT 區(qū)別:

---RUN 指令是在鏡像構(gòu)建時(shí)運(yùn)行,而后兩個(gè)是在容器啟動(dòng)時(shí)執(zhí)行!

---CMD 指令設(shè)置的命令是容器啟動(dòng)時(shí)默認(rèn)運(yùn)行的命令,如果 docker run 沒有指定任何的命令,并且 Dockerfile 中沒有指定 ENTRYPOINT,那容器啟動(dòng)的時(shí)候就會(huì)執(zhí)行 CMD 指定的命令!有點(diǎn)類似代碼中的缺省參數(shù)!

---如果設(shè)置了 ENTRYPOINT 指令,則優(yōu)先使用!并且可以通過 dockerrun 給該指令設(shè)置的命令傳參!

---CMD 有點(diǎn)類似代碼中的缺省參數(shù)。

13、USER

  1. USER <user>[:<group>]  
  2.   USER <UID>[:<GID>]  

用于指定運(yùn)行鏡像所使用的用戶。

14、ARG

  1. ARG <name>[=<defaultvalue>]  

指定在鏡像構(gòu)建時(shí)可傳遞的變量,定義的變量可以通過 dockerbuild --build-arg = 的方式在構(gòu)建時(shí)設(shè)置。

15、ONBUILD

  1. ONBUILD [INSTRUCTION]  

當(dāng)所構(gòu)建的鏡像被當(dāng)做其他鏡像的基礎(chǔ)鏡像時(shí),ONBUILD 指定的命令會(huì)被觸發(fā)!

16、STOPSIGNAL

  1. STOPSIGNAL signal  

設(shè)置當(dāng)容器停止時(shí)所要發(fā)送的系統(tǒng)調(diào)用信號(hào)!

17、HEALTHCHECK

  1. HEALTHCHECK [OPTIONS] CMD command (在容器內(nèi)運(yùn)行運(yùn)行命令檢測容器的運(yùn)行情況)  
  2. HEALTHCHECK NONE (禁止從父鏡像繼承檢查)  

該指令可以告訴 Docker 怎么去檢測一個(gè)容器的運(yùn)行狀況!

18、SHELL

  1. SHELL ["executable","parameters"]  

用于設(shè)置執(zhí)行命令所使用的默認(rèn)的 Shell 類型!該指令在 Windows 操作系統(tǒng)下比較有用,因?yàn)?Windows 下通常會(huì)有 CMD 和 Powershell 兩種 Shell,甚至還有 SH。

以上就是Dockerfile的相關(guān)指令,既然對(duì)這些指令有了大概的了解,那么怎么來構(gòu)建呢?當(dāng)然使用Docker提供的構(gòu)建命令:docker build [OPTIONS] PATH | URL | -

-f:指定要使用的 Dockerfile 路徑,如果不指定,則在當(dāng)前工作目錄尋找 Dockerfile 文件!

-t:鏡像的名字及標(biāo)簽,通常 name:tag 或者 name 格式;可以在一次構(gòu)建中為一個(gè)鏡像設(shè)置多個(gè)標(biāo)簽。

看看redis和nodejs的Dockerfile長什么樣:

Dockerfile:Docker中構(gòu)建鏡像用到的文本文檔

 

Dockerfile:Docker中構(gòu)建鏡像用到的文本文檔

 

責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2021-09-02 11:55:57

Dockerfile文Linux

2021-11-09 14:08:45

DockerDockerfileJava

2011-03-28 16:32:02

Oracle數(shù)據(jù)文本文檔查詢

2019-09-17 09:44:45

DockerHTMLPython

2014-11-18 10:37:15

dockerlinux技巧

2020-11-03 16:42:46

容器Dockerfile技術(shù)

2015-01-08 15:18:43

DockerDockerFile創(chuàng)建鏡像

2023-09-12 08:03:49

容器鏡像

2024-03-06 18:11:06

Docker鏡像技術(shù)

2021-05-13 23:54:12

DockerDockerfile鏡像

2017-11-13 17:17:11

Docker鏡像Go

2022-09-06 10:39:38

Docker鏡像構(gòu)建

2023-08-04 08:20:56

DockerfileDocker工具

2017-03-24 09:24:21

HarborDocker鏡像倉庫

2024-02-20 08:08:43

2016-08-22 16:12:27

DockerWeb服務(wù)器API

2022-08-04 18:30:59

DockerfileDocker 鏡像Linux

2021-04-28 10:30:46

BuildKitDockerfileLinux

2023-06-08 07:37:42

Docker容器

2021-02-23 15:05:55

Docker鏡像開發(fā)
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 亚洲第1页| 成人av免费 | 日韩免费看视频 | 羞羞网站在线观看 | 金莲网| 99re视频在线 | 毛片一级黄色 | 亚洲国产成人精品女人久久久 | 密室大逃脱第六季大神版在线观看 | 欧美日韩中文字幕在线播放 | 久久久精| 国产高清视频在线观看 | 亚洲一区二区三区视频 | 亚洲精品视频在线播放 | 亚洲伊人精品酒店 | 高清国产午夜精品久久久久久 | 黄片毛片 | 午夜爱爱网| 日韩av一区二区在线观看 | 亚洲高清在线免费观看 | 天堂在线中文 | 一道本不卡视频 | 91视频国产精品 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 亚洲精品2 | 视频一区二区在线观看 | 精产嫩模国品一二三区 | 色天天综合 | 欧美激情国产精品 | 国产一级一级毛片 | av中文在线观看 | 国产精品96久久久久久 | 91精品国模一区二区三区 | 中文字幕 在线观看 | 在线国产视频观看 | 国产成人网 | 国内精品免费久久久久软件老师 | 九九综合 | 国产黄色av网站 | 中文字幕成人在线 | 亚洲精品在线免费观看视频 |