国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker容器化技術(shù)(使用Dockerfile制作鏡像)

這篇具有很好參考價值的文章主要介紹了Docker容器化技術(shù)(使用Dockerfile制作鏡像)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Docker容器化技術(shù)(使用Dockerfile制作鏡像),docker,spring cloud,容器

Docker中的鏡像分層

Docker 支持通過擴展現(xiàn)有鏡像,創(chuàng)建新的鏡像。實際上,Docker Hub 中 99% 的鏡像都是通過在 base 鏡像中安裝和配置需要的軟件構(gòu)建出來的。

1、Docker 鏡像為什么分層

鏡像分層最大的一個好處就是共享資源。 比如說有多個鏡像都從相同的 base 鏡像構(gòu)建而來,那么 Docker Host 只需在磁盤上保存一份 base 鏡 像;同時內(nèi)存中也只需加載一份 base 鏡像,就可以為所有容器服務了。而且鏡像的每一層都可以被共 享。

如果多個容器共享一份基礎(chǔ)鏡像,當某個容器修改了基礎(chǔ)鏡像的內(nèi)容,比如 /etc 下的文件,這時其他容 器的 /etc 是不會被修改的,修改只會被限制在單個容器內(nèi)。這就是容器 Copy-on-Write 特性。

2、可寫的容器層

當容器啟動時,一個新的可寫層被加載到鏡像的頂部。這一層通常被稱作“容器層”,“容器層”之下的都叫 “鏡像層”。?

所有對容器的改動 - 無論添加、刪除、還是修改文件都只會發(fā)生在容器層中。只有容器層是可寫的,容 器層下面的所有鏡像層都是只讀的。

3、容器層的細節(jié)說明

鏡像層數(shù)量可能會很多,所有鏡像層會聯(lián)合在一起組成一個統(tǒng)一的文件系統(tǒng)。如果不同層中有一個相同 路徑的文件,比如 /a,上層的 /a 會覆蓋下層的 /a,也就是說用戶只能訪問到上層中的文件 /a。在容器 層中,用戶看到的是一個疊加之后的文件系統(tǒng)。

Dockerfile 介紹

  Docker中有個非常重要的概念叫做——鏡像(Image)。Docker 鏡像是一個特殊的文件系統(tǒng),除 了提供容器運行時所需的程序、庫、資源、配置等文件外,還包含了一些為運行時準備的一些配置參數(shù) (如匿名卷、環(huán)境變量、用戶等)。鏡像不包含任何動態(tài)數(shù)據(jù),其內(nèi)容在構(gòu)建之后也不會被改變。   

????????鏡像的定制實際上就是定制每一層所添加的配置、文件。如果我們可以把每一層修改、安裝、構(gòu) 建、操作的命令都寫入一個腳本,用這個腳本來構(gòu)建、定制鏡像,那么之前提及的無法重復的問題、鏡 像構(gòu)建透明性的問題、體積的問題就都會解決。這個腳本就是 Dockerfile。   

????????Dockerfile 是一個文本文件,其內(nèi)包含了一條條的指令(Instruction),每一條指令構(gòu)建一層,因此每 一條指令的內(nèi)容,就是描述該層應當如何構(gòu)建。

[root@localhost ~]# mkdir /db
[root@localhost ~]# cd /db
[root@localhost db]# systemctl start docker
[root@localhost db]# 
[root@localhost db]# vim Dockerfile
ARG VER=latest
FROM busybox:$VER
MAINTAINER wyx<wyx@111.com>
ENV WEB_DOC_ROOT="/data/web/html"

RUN mkdir -p ${WEB_DOC_ROOT}
COPY index.html ${WEB_DOC_ROOT}/index.html

EXPOSE 80
CMD /bin/httpd -f -h ${WEB_DOC_ROOT}

Dcokerfile指令介紹?

?FROM?

?介紹

  • FROM 指令必須是 Dockerfile 中非注釋行的第一個指令,即一個 Dockerfile 從FROM語句; FROM 指令用于為鏡像文件構(gòu)建過程指定基礎(chǔ)鏡像,后續(xù)的指令運行于此基礎(chǔ)鏡像所提供的運行環(huán) 境;
  • 實踐中,基準鏡像可以是任何可用鏡像文件,默認情況下,docker build會在docker主機上查找指 定的鏡像文件,在其不存在時,則會自動從 Docker 的公共庫 pull 鏡像下來。如果找不到指定的 鏡像文件,docker build 會返回一個錯誤信息;
  • FROM可以在一個 Dockerfile 中出現(xiàn)多次,如果有需求在一個 Dockerfile 中創(chuàng)建多個鏡像。 如果FROM語句沒有指定鏡像標簽,則默認使用latest標簽。

ARG

介紹

  • ARG指令類似ENV,定義了一個變量;區(qū)別于ENV:用戶可以在構(gòu)建時docker build --build-arg = 進行對變量的修改;ENV不可以;
  • 如果用戶指定了未在Dockerfile中定義的構(gòu)建參數(shù),那么構(gòu)建輸出警告。?

?MAINTAINER?

介紹

????????用于讓dockerfile制作者提供本人的詳細信息 dockerfile 并不限制MAINTAINER 指令可在出現(xiàn)的位置,但推薦將其放置于FROM指令之后

COPY

介紹

用于從docker 主機復制新文件或者目錄至創(chuàng)建的新鏡像指定路徑中

?EXPOSE

介紹

用于為容器打開指定要監(jiān)聽的端口以實現(xiàn)與外部通信

RUN

介紹

用于指定docker build過程中運行的程序,其可以是任何命令?

ENV

介紹

  • 用于為鏡像定義所需的環(huán)境變量,并可被Dockerfile文件中位于其后的其它指令(如ENV、ADD、 COPY等)所調(diào)用
  • 調(diào)用格式為$variable_ name 或 ${variable_ name}

示例?

[root@localhost db]# docker build -t web:v2 ./  --load
[+] Building 1.5s (7/7) FINISHED                                                                                                                  docker-container:default
 => [internal] load build definition from Dockerfile                                                                                                                  0.0s
 => => transferring dockerfile: 344B                                                                                                                                  0.0s
 => [internal] load metadata for docker.io/library/busybox:latest                                                                                                     1.3s
 => [internal] load .dockerignore                                                                                                                                     0.0s
 => => transferring context: 2B                                                                                                                                       0.0s
 => [1/2] FROM docker.io/library/busybox:latest@sha256:650fd573e056b679a5110a70aabeb01e26b76e545ec4b9c70a9523f2dfaf18c6                                               0.0s
 => => resolve docker.io/library/busybox:latest@sha256:650fd573e056b679a5110a70aabeb01e26b76e545ec4b9c70a9523f2dfaf18c6                                               0.0s
 => CACHED [2/2] RUN mkdir -p /data/web/html &&     echo "<h1>Busybox httpd server</h1>" > /data/web/html/index.html                                                  0.0s
 => exporting to docker image format                                                                                                                                  0.1s
 => => exporting layers                                                                                                                                               0.0s
 => => exporting manifest sha256:ac9ab7ea17a22df4d6b811825b8d72617057773c55d4ac1333202c077d02edc9                                                                     0.0s
 => => exporting config sha256:d295a55faa063775dc81658b0f9a2b022e8c3ebee479fe7b94386155c695c810                                                                       0.0s
 => => sending tarball                                                                                                                                                0.1s
 => importing to docker                                                                                                                                               0.0s
 => => loading layer 29daefb0147a 223B / 223B                                                                                                                         0.0s
[root@localhost db]# docker images
REPOSITORY                      TAG               IMAGE ID       CREATED         SIZE
web                             v2                d295a55faa06   6 minutes ago   4.26MB
moby/buildkit                   buildx-stable-1   480495983c47   5 weeks ago     172MB
wordpress                       latest            2fc2a7b04129   5 weeks ago     739MB
tencentci/discuz                latest            caba9d3ea6d8   8 weeks ago     574MB
mysql                           5.7               5107333e08a8   3 months ago    501MB
goharbor/harbor-exporter        v2.8.4            b8d33e28ec68   6 months ago    97.7MB
goharbor/redis-photon           v2.8.4            7b7324d651ca   6 months ago    120MB
goharbor/trivy-adapter-photon   v2.8.4            91d8e9f0b21a   6 months ago    464MB
goharbor/notary-server-photon   v2.8.4            a46f91560454   6 months ago    113MB
goharbor/notary-signer-photon   v2.8.4            da66bd8d944b   6 months ago    110MB
goharbor/harbor-registryctl     v2.8.4            805b38ca6bee   6 months ago    141MB
goharbor/registry-photon        v2.8.4            756769e94123   6 months ago    79MB
goharbor/nginx-photon           v2.8.4            375018db778b   6 months ago    116MB
goharbor/harbor-log             v2.8.4            8a2045fb24d2   6 months ago    124MB
goharbor/harbor-jobservice      v2.8.4            97808fc10f64   6 months ago    141MB
goharbor/harbor-core            v2.8.4            c26fcd0714d8   6 months ago    164MB
goharbor/harbor-portal          v2.8.4            4a8b0205c0f9   6 months ago    124MB
goharbor/harbor-db              v2.8.4            5b8af16d7420   6 months ago    174MB
goharbor/prepare                v2.8.4            bdbf974d86ce   6 months ago    166MB
busybox                         latest            ba5dc23f65d4   9 months ago    4.26MB
mysql                           5.6               dd3b2a5dcb48   2 years ago     303MB
y109/discuz                     latest            607a1b6e9cc4   8 years ago     542MB
training/webapp                 latest            6fae60ef3446   8 years ago     349MB
training/postgres               latest            6fa973bb3c26   9 years ago     365MB
[root@localhost db]# docker run -d --name test1 -P web:v2
ed9d72069d829036d826e87875f1b15242c358d67d95130862ef8ee440caa0f3
[root@localhost db]# docker ps
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS                   NAMES
ed9d72069d82   web:v2                          "/bin/sh -c '/bin/ht…"   5 seconds ago    Up 4 seconds    0.0.0.0:32768->80/tcp   test1
faed7103e3ff   moby/buildkit:buildx-stable-1   "buildkitd"              11 minutes ago   Up 11 minutes                           buildx_buildkit_default

?Docker容器化技術(shù)(使用Dockerfile制作鏡像),docker,spring cloud,容器文章來源地址http://www.zghlxwxcb.cn/news/detail-841419.html

到了這里,關(guān)于Docker容器化技術(shù)(使用Dockerfile制作鏡像)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • Docker容器技術(shù)之鏡像制作

    Docker容器技術(shù)之鏡像制作

    上篇文章說到過,作為用戶是不需要制作鏡像的,因為幾乎所有常用的數(shù)據(jù)局庫、應用軟件、中間件在Docker Hub 里面可以找到,但是如果到了萬不得已的時候我們還是要自己制作鏡像,比如給自己編寫的軟件制作鏡像。 制作鏡像有兩種方法: 1.docker commit命令 2.編寫Dockerfile利

    2024年02月05日
    瀏覽(116)
  • Docker技術(shù)入門| Part03:Dockerfile詳解(Dockerfile概念、Dockerfile 指令、使用Dockerfile構(gòu)建鏡像)

    Docker鏡像原理 Docker鏡像是由特殊的文件系統(tǒng)疊加而成 最底端是bootfs,并使用宿主機的bootfs 第二層是root文件系統(tǒng)rootfs,稱為base image 然后再往上可以疊加其他的鏡像文件 統(tǒng)文件系統(tǒng)(UnionFile System)技術(shù)能夠?qū)⒉煌膶诱铣梢粋€文件系統(tǒng),為這些層提供了一個統(tǒng)的視角,這樣就隱

    2024年02月09日
    瀏覽(92)
  • Docker在windows下使用教程,通過Dockerfile創(chuàng)建鏡像/容器,以YOLO系列為例

    Docker在windows下使用教程,通過Dockerfile創(chuàng)建鏡像/容器,以YOLO系列為例

    ?通過可視化界面將極大的降低學習難度。 ?1.1、Docker Desktop下載 ?下載地址:Docker Desktop: The #1 Containerization Tool for Developers | Docker 應當是這個界面,選擇下載即可 1.2、下載完成后需打開window自帶的虛擬機 ? ? ? 將Hyper-V勾選即打開,勾選后需重啟。? 1.3、下載WSL,由于是在

    2024年02月05日
    瀏覽(103)
  • docker (八)-dockerfile制作鏡像

    docker (八)-dockerfile制作鏡像

    dockerfile通常包含以下幾個常用命令: FROM ? 打包使用的基礎(chǔ)鏡像 WORKDIR?? 相當于cd命令,進入工作目錄 COPY ? 將宿主機的文件復制到容器內(nèi) RUN?? 打包時執(zhí)行的命令,相當于打包過程中在容器中執(zhí)行shell腳本,通常用來安裝應用程序所需要的依賴、設(shè)置權(quán)限、初始化配置文件

    2024年02月21日
    瀏覽(96)
  • 如何在 Linux 命令行下玩轉(zhuǎn) Docker——如何使用 Dockerfile 來構(gòu)建和運行容器鏡像

    作者:禪與計算機程序設(shè)計藝術(shù) Docker 是一款開源的容器化技術(shù),它利用 Linux 內(nèi)核的容器特性,將應用部署到獨立的進程環(huán)境中。基于容器技術(shù)可以極大地提高開發(fā)者和運維人員的效率,降低部署、測試和生產(chǎn)環(huán)節(jié)中的成本,有效地實現(xiàn)云計算資源的彈性伸縮。 本文主要介紹

    2024年02月07日
    瀏覽(105)
  • Docker容器:docker鏡像的創(chuàng)建及dockerfile

    Docker容器:docker鏡像的創(chuàng)建及dockerfile

    創(chuàng)建鏡像有三種方法:基于現(xiàn)有鏡像創(chuàng)建、基于本地模板創(chuàng)建及基于dockerfile創(chuàng)建 1.1 啟動鏡像 1.2 生成新鏡像 2.1 OPENVZ 下載模板 2.2 導入容器生成鏡像 3.1 dockerfile結(jié)構(gòu)及分層 (1)dockerfile結(jié)構(gòu)大致分為4個部分 基礎(chǔ)鏡像信息 維護者信息 鏡像操作指令 容器啟動時執(zhí)行指令 Dockerfil

    2024年02月11日
    瀏覽(93)
  • 【云原生-Docker】docker鏡像制作、上傳、dockerfile命令解析

    【云原生-Docker】docker鏡像制作、上傳、dockerfile命令解析

    在實際業(yè)務場景中,需要制作多個不同版本進行鏡像使用,如maven版本、JDK、openJDK不同使用等,所以需要做多個針對不同版本做不同的鏡像。 這里記錄一下之前devops用的openJDK版本、某些部門需要用orcle JDK、特此需要做不同的鏡像,鏡像內(nèi)包含centos、maven、jdk。 基礎(chǔ)鏡像 基礎(chǔ)

    2024年02月03日
    瀏覽(149)
  • 【Docker】個人鏡像文件Dockerfile制作詳解

    【Docker】個人鏡像文件Dockerfile制作詳解

    前言 潔潔的個人主頁 我就問你有沒有發(fā)揮! 知行合一,志存高遠。 Docker 是一個 開源的應用容器引擎 ,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux或Windows 操作系統(tǒng)的機器上,也可以實現(xiàn)虛擬化,容器是完全使用沙箱機制,相互之

    2024年02月13日
    瀏覽(89)
  • 【Docker】用Dockerfile制作個人的鏡像文件

    【Docker】用Dockerfile制作個人的鏡像文件

    作者簡介: 辭七七,目前大一,正在學習C/C++,Java,Python等 作者主頁: 七七的個人主頁 文章收錄專欄: 七七的閑談 歡迎大家點贊 ?? 收藏 ? 加關(guān)注哦!???? 前言 Docker 是一個 開源的應用容器引擎 ,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)

    2024年02月10日
    瀏覽(85)
  • Docker(七)—— 如何用Dockerfile制作自己的鏡像

    Docker(七)—— 如何用Dockerfile制作自己的鏡像

    目錄 需求: 一、步驟? 二、Dockerfile 三、 實戰(zhàn) —— 構(gòu)建自己的centos 1. dockerfile編寫 2. build構(gòu)建 3. run 運行 四、用docker commit實現(xiàn) 四、實戰(zhàn) —— 構(gòu)建jar包的鏡像(helloworld版本) 五、實戰(zhàn) —— 構(gòu)建jar包的鏡像(兩個容器通信版本)? 自己寫了一個小程序,如何帶著環(huán)境打包

    2024年02月05日
    瀏覽(94)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包