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

【云原生|Docker系列第3篇】Docker鏡像的入門實(shí)踐

這篇具有很好參考價(jià)值的文章主要介紹了【云原生|Docker系列第3篇】Docker鏡像的入門實(shí)踐。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

【云原生|Docker系列第3篇】Docker鏡像的入門實(shí)踐,云原生,云原生,docker,容器,運(yùn)維

歡迎來到Docker入門系列的第三篇博客!在前兩篇博客中,我們已經(jīng)了解了什么是Docker以及如何安裝和配置它。本篇博客將重點(diǎn)介紹Docker鏡像的概念,以及它們之間的關(guān)系。我們還將學(xué)習(xí)如何拉取、創(chuàng)建、管理和分享Docker鏡像,這是使用Docker的重要步驟之一。

Docker鏡像是Docker的核心概念之一,它提供了一個(gè)可執(zhí)行的軟件包,其中包含了運(yùn)行應(yīng)用程序所需的一切:代碼、運(yùn)行時(shí)環(huán)境、系統(tǒng)工具、庫以及依賴項(xiàng)等。

通過學(xué)習(xí)Docker鏡像的概念,您將能夠更好地理解Docker的工作原理,并利用Docker提供的強(qiáng)大功能來開發(fā)、測試和部署應(yīng)用程序。接下來,讓我們深入探索Docker鏡像的世界吧!

1. Docker鏡像

Docker鏡像是Docker的核心構(gòu)建塊,它是一個(gè)輕量級、可執(zhí)行的軟件包,用于構(gòu)建和運(yùn)行容器化應(yīng)用程序。一個(gè)Docker鏡像包含了運(yùn)行應(yīng)用程序所需的一切,包括應(yīng)用程序的代碼、運(yùn)行時(shí)環(huán)境、系統(tǒng)工具、庫以及依賴項(xiàng)等。

1.1 Docker鏡像的特點(diǎn)

  • 輕量級:Docker鏡像采用了分層存儲(chǔ)的機(jī)制,不同層之間可以共享相同的文件,從而減少了存儲(chǔ)空間的占用。
  • 可移植性:Docker鏡像具有良好的可移植性,可以在不同的主機(jī)和環(huán)境中運(yùn)行,無需關(guān)注底層操作系統(tǒng)的差異。
  • 版本控制:每個(gè)Docker鏡像都有唯一的標(biāo)識符,稱為鏡像ID,可以用于對鏡像進(jìn)行版本控制和管理。
  • 可復(fù)用性:可以通過基于已有的Docker鏡像構(gòu)建新的鏡像,從而實(shí)現(xiàn)鏡像的復(fù)用和擴(kuò)展。

1.2 Docker鏡像的獲取

獲取Docker鏡像通常有兩種方式:拉取公共鏡像倉庫中的鏡像,或者通過構(gòu)建自定義鏡像來創(chuàng)建。

1.2.1 拉取鏡像

Docker鏡像可以從公共的鏡像倉庫中拉取,最著名的鏡像倉庫就是Docker Hub。您可以在Docker Hub上找到數(shù)以萬計(jì)的官方和社區(qū)維護(hù)的Docker鏡像。使用docker pull命令可以拉取鏡像,命令格式如下:

docker pull <鏡像名稱>:<標(biāo)簽>

例如,要拉取官方的Ubuntu鏡像:

docker pull ubuntu:latest

【云原生|Docker系列第3篇】Docker鏡像的入門實(shí)踐,云原生,云原生,docker,容器,運(yùn)維

1.2.2 使用Dockerfile構(gòu)建鏡像

1.3 Docker鏡像的管理

在使用Docker時(shí),我們可能需要對鏡像進(jìn)行管理,包括查看鏡像列表、刪除鏡像、導(dǎo)出和導(dǎo)入鏡像等操作。

1.3.1 查看鏡像列表

要查看本地主機(jī)上已有的鏡像列表,可以使用docker images命令。該命令將顯示鏡像的倉庫名稱、標(biāo)簽、鏡像ID、創(chuàng)建時(shí)間和大小等信息。

docker images ls

【云原生|Docker系列第3篇】Docker鏡像的入門實(shí)踐,云原生,云原生,docker,容器,運(yùn)維

1.3.2 刪除鏡像

要?jiǎng)h除本地主機(jī)上的一個(gè)或多個(gè)鏡像,可以使用docker rmi命令。需要指定要?jiǎng)h除的鏡像的鏡像ID或者倉庫名稱和標(biāo)簽。

docker rmi <鏡像ID或名稱>:<標(biāo)簽>

1.3.3 導(dǎo)出和導(dǎo)入鏡像

有時(shí)候,我們可能需要將一個(gè)鏡像導(dǎo)出到一個(gè)文件中,或者從一個(gè)文件中導(dǎo)入一個(gè)鏡像??梢允褂?code>docker save命令將鏡像導(dǎo)出到一個(gè)tar文件中,然后使用docker load命令從tar文件中導(dǎo)入鏡像。

導(dǎo)出鏡像:

docker save -o <導(dǎo)出文件名.tar> <鏡像名稱>:<標(biāo)簽>

導(dǎo)入鏡像:

docker load -i <導(dǎo)入文件名.tar>

2. 使用Dockerfile定制鏡像

2.1 Dockerfile定制鏡像

鏡像的定制實(shí)際上就是定制每一層所添加的配置、文件。如果我們可以把每一層修改、安裝、構(gòu)建、操作的命令都寫入一個(gè)腳本,用這個(gè)腳本來構(gòu)建、定制鏡像,那么之前提及的無法重復(fù)的問題、鏡像構(gòu)建透明性的問題、體積的問題就都會(huì)解決。這個(gè)腳本就是 Dockerfile。
Dockerfile 是一個(gè)文本文件,其內(nèi)包含了一條條的 指令(Instruction),每一條指令構(gòu)建一層,因此每一條指令的內(nèi)容,就是描述該層應(yīng)當(dāng)如何構(gòu)建。
以我們剛剛定制nginx鏡像為例子,我們在一個(gè)空白目錄中,建立一個(gè)文本文件,并命名為Dockerfile:

$ mkdir mynginx
$ cd mynginx
$ touch Dockerfile

【云原生|Docker系列第3篇】Docker鏡像的入門實(shí)踐,云原生,云原生,docker,容器,運(yùn)維
其內(nèi)容為:

FROM nginx
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html

其中命令我們后面再詳細(xì)講述,我們使用它構(gòu)建鏡像,dockerfile構(gòu)建鏡像命令格式如下:

docker build -t <鏡像名稱>:<標(biāo)簽> <Dockerfile路徑>

接下來您可以使用以下命令構(gòu)建鏡像:

docker build -t myimage:latest .

【云原生|Docker系列第3篇】Docker鏡像的入門實(shí)踐,云原生,云原生,docker,容器,運(yùn)維
然后我們再運(yùn)行這個(gè)鏡像,你可以選擇直接命令行運(yùn)行,也可以直接在docker客戶端運(yùn)行,這里為了方便理解,我用docker客戶端運(yùn)行這個(gè)鏡像:
【云原生|Docker系列第3篇】Docker鏡像的入門實(shí)踐,云原生,云原生,docker,容器,運(yùn)維
隨便填個(gè)端口:
【云原生|Docker系列第3篇】Docker鏡像的入門實(shí)踐,云原生,云原生,docker,容器,運(yùn)維

打開網(wǎng)頁訪問這個(gè)端口:
【云原生|Docker系列第3篇】Docker鏡像的入門實(shí)踐,云原生,云原生,docker,容器,運(yùn)維

2.2 Dockerfile指令

2.2.1 COPY 復(fù)制文件

格式如下:

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

COPY 指令將從構(gòu)建上下文目錄中 <源路徑> 的文件/目錄復(fù)制到新的一層的鏡像內(nèi)的 <目標(biāo)路徑> 位置。比如:

COPY package.json /usr/src/app/

<源路徑> 可以是多個(gè),甚至可以是通配符,其通配符規(guī)則要滿足 Go 的 filepath.Match 規(guī)則,如:

COPY hom* /mydir/
COPY hom?.txt /mydir/

2.2.2 FROM 指定基礎(chǔ)鏡像

所謂定制鏡像,那一定是以一個(gè)鏡像為基礎(chǔ),在其上進(jìn)行定制。就像我們之前運(yùn)行了一個(gè) nginx 鏡像的容器,再進(jìn)行修改一樣,基礎(chǔ)鏡像是必須指定的。而 FROM 就是指定 基礎(chǔ)鏡像,因此一個(gè) Dockerfile 中 FROM 是必備的指令,并且必須是第一條指令。
在 Docker Hub 上有非常多的高質(zhì)量的官方鏡像,有可以直接拿來使用的服務(wù)類的鏡像,如 nginx、redis、mongo、mysql、httpd、php、tomcat 等;也有一些方便開發(fā)、構(gòu)建、運(yùn)行各種語言應(yīng)用的鏡像,如 node、openjdk、python、ruby、golang 等??梢栽谄渲袑ふ乙粋€(gè)最符合我們最終目標(biāo)的鏡像為基礎(chǔ)鏡像進(jìn)行定制。

格式如下:

FROM <鏡像名字>

如:

FROM nginx

2.2.3 RUN 執(zhí)行命令

RUN 指令是用來執(zhí)行命令行命令的。由于命令行的強(qiáng)大能力,RUN 指令在定制鏡像時(shí)是最常用的指令之一。其格式有兩種:

  • shell 格式:RUN <命令>,就像直接在命令行中輸入的命令一樣。剛才寫的 Dockerfile 中的 RUN 指令就是這種格式。
RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
  • exec 格式:RUN [“可執(zhí)行文件”, “參數(shù)1”, “參數(shù)2”],這更像是函數(shù)調(diào)用中的格式。

2.2.4 ADD 更高級的復(fù)制文件

ADD 指令和 COPY 的格式和性質(zhì)基本一致。但是在 COPY 基礎(chǔ)上增加了一些功能。
比如 <源路徑> 可以是一個(gè) URL,這種情況下,Docker 引擎會(huì)試圖去下載這個(gè)鏈接的文件放到 <目標(biāo)路徑> 去。下載后的文件權(quán)限自動(dòng)設(shè)置為 600,如果這并不是想要的權(quán)限,那么還需要增加額外的一層 RUN 進(jìn)行權(quán)限調(diào)整,另外,如果下載的是個(gè)壓縮包,需要解壓縮,也一樣還需要額外的一層 RUN 指令進(jìn)行解壓縮。所以不如直接使用 RUN 指令,然后使用 wget 或者 curl 工具下載,處理權(quán)限、解壓縮、然后清理無用文件更合理。因此,這個(gè)功能其實(shí)并不實(shí)用,而且不推薦使用。
例如:

FROM scratch
ADD ubuntu-xenial-core-cloudimg-amd64-root.tar.gz /

2.2.5 CMD 容器啟動(dòng)命令

指定容器啟動(dòng)時(shí)要執(zhí)行的命令,可以有多個(gè) CMD,但只有最后一個(gè)生效。

CMD ["python", "app.py"]

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

設(shè)置工作目錄,后續(xù)的指令將在該目錄下執(zhí)行。

WORKDIR /app

2.2.7 EXPOSE 暴露端口

聲明容器運(yùn)行時(shí)需要監(jiān)聽的端口。

EXPOSE 80

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

ENV APP_VERSION=1.0

3. Docker鏡像的分享和推送

Docker鏡像的分享和推送是與團(tuán)隊(duì)合作和社區(qū)共享的重要環(huán)節(jié)。您可以將自己創(chuàng)建的鏡像分享給其他開發(fā)者,也可以將鏡像推送到公共的或私有的鏡像倉庫中。

3.1 分享Docker鏡像

要分享一個(gè)Docker鏡像,可以通過導(dǎo)出和導(dǎo)入的方式進(jìn)行。首先,使用docker save命令將鏡像導(dǎo)出到一個(gè)tar文件中,然后通過郵件、文件共享等方式與其他人共享該文件。

docker save -o <導(dǎo)出文件名.tar> <鏡像名稱>:<標(biāo)簽>

接收方可以使用docker load命令從tar文件中導(dǎo)入鏡像。

docker load -i <導(dǎo)入文件名.tar>

3.2 推送Docker鏡像

如果您希望將鏡像推送到Docker Hub或其他鏡像倉庫中,可以使用docker push命令。推送鏡像之前,您需要先登錄到鏡像倉庫。

docker login

然后,使用docker push命令將鏡像推送到倉庫。

docker push <鏡像名稱>:<標(biāo)簽>

總結(jié)

在本篇博客中,我們深入探討了Docker鏡像的概念。我們學(xué)習(xí)了如何獲取和管理Docker鏡像,包括拉取鏡像、構(gòu)建自定義鏡像以及導(dǎo)出和導(dǎo)入鏡像。我們還介紹了如何通過Dockerfile制作鏡像以及Dockerfile的指令。最后,我們了解了如何分享和推送Docker鏡像,以便與他人共享和合作。

通過學(xué)習(xí)和掌握Docker鏡像的基本概念,您將能夠更好地利用Docker來開發(fā)、測試和部署應(yīng)用程序。容器化技術(shù)的出現(xiàn)使得應(yīng)用程序的開發(fā)和部署更加靈活、高效,并帶來了諸多優(yōu)勢。在接下來的博客中,我們將繼續(xù)探索Docker的更多功能和應(yīng)用場景,下一篇文章我們會(huì)進(jìn)入Docker容器的入門實(shí)踐。

希望本篇博客對您理解Docker鏡像起到了很好的指導(dǎo)作用。繼續(xù)探索Docker的世界,您將發(fā)現(xiàn)更多令人興奮的功能和應(yīng)用!文章來源地址http://www.zghlxwxcb.cn/news/detail-576516.html

到了這里,關(guān)于【云原生|Docker系列第3篇】Docker鏡像的入門實(shí)踐的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【運(yùn)維知識大神篇】運(yùn)維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境)

    【運(yùn)維知識大神篇】運(yùn)維人必學(xué)的Docker教程1(Docker安裝部署+Docker鏡像管理+容器管理常用命令+搭建docker的本地yum源+windows系統(tǒng)安裝docker環(huán)境)

    本篇文章開始給大家介紹Docker,這個(gè)是我非常喜歡的一個(gè)服務(wù),介紹給大家,希望大家也能喜歡! 目錄 何為容器 Docker環(huán)境安裝部署 一、yum安裝(CentOS7.9) 二、rpm包安裝(CentOS) 三、卸載docker環(huán)境 四、安裝指定的docker版本 五、Ubuntu安裝docker環(huán)境 六、使用deb安裝docker 七、

    2024年01月18日
    瀏覽(105)
  • Docker系列 1 - 鏡像和容器

    Docker系列 1 - 鏡像和容器

    ? docker官網(wǎng):http://www.docker.com docker中文網(wǎng)站:https://www.docker-cn.com/ Docker Hub 倉庫官網(wǎng): https://hub.docker.com/ ? Docker 的基本組成: 鏡像(image) 、 容器(container) 、 倉庫(repository) 。 Docker 鏡像(Image)就是一個(gè)只讀的模板 。鏡像可以用來創(chuàng)建 Docker 容器,一個(gè)鏡像可以創(chuàng)建很

    2024年02月15日
    瀏覽(17)
  • 云原生系列之docker的容器管理實(shí)戰(zhàn)

    之前我們已經(jīng)探討過了docker的鏡像,看了下時(shí)間,距離上次介紹容器的鏡像已經(jīng)過去兩個(gè)月了, 如果你已經(jīng)忘記了,可以直奔專欄:容器管理 從今天開始,我們要探討docker 的容器了,docker的容器都是從鏡像開始創(chuàng)建的,涉及到的操作有: 創(chuàng)建容器,停止容器,進(jìn)入容器,刪

    2024年02月10日
    瀏覽(21)
  • Docker入門到精通:Docker架構(gòu)、鏡像操作和容器操作

    Docker入門到精通:Docker架構(gòu)、鏡像操作和容器操作

    本文深入探討Docker的核心概念,包括容器化技術(shù)的演變、Docker架構(gòu)、鏡像與容器的操作,以及如何在Linux系統(tǒng)中安裝和使用Docker。

    2024年02月06日
    瀏覽(65)
  • docker入門(1)----服務(wù)/鏡像/容器相關(guān)命令

    docker入門(1)----服務(wù)/鏡像/容器相關(guān)命令

    官網(wǎng)安裝app 命令行安裝(但是沒有圖形界面app) brew install docker 鏡像(Image):Docker 鏡像(Image),就相當(dāng)于是一個(gè) root 文件系統(tǒng)。比如官方鏡像ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統(tǒng)的 root 文件系統(tǒng)。 容器(Container):鏡像(Image)和容器(Container)的關(guān)系,就

    2024年02月06日
    瀏覽(57)
  • Docker入門流程(創(chuàng)建容器到構(gòu)建鏡像)

    Docker入門流程(創(chuàng)建容器到構(gòu)建鏡像)

    平時(shí)我們經(jīng)常會(huì)遇到在自己電腦上運(yùn)行的代碼,在別人的電腦上運(yùn)行就出現(xiàn)莫名其妙的問題,這種大多是因?yàn)榇a”水土不服“,不同電腦的軟件版本和依賴庫不同,Docker的使用可以很好地解決這個(gè)問題。簡單來說,Docker可以把 代碼和代碼運(yùn)行的環(huán)境 一把打包,構(gòu)建一個(gè)容

    2024年02月08日
    瀏覽(22)
  • Docker入門安裝、鏡像與容器下載 —— 基本操作

    Docker入門安裝、鏡像與容器下載 —— 基本操作

    目錄 前言 Docker 1. docker介紹 2. docker安裝 3. docker基本使用 3.1 鏡像下載 3.2 操作容器 ? ? ? ? 虛擬機(jī):基于主機(jī)(物理機(jī)或虛機(jī))的多服務(wù)實(shí)例。 在該模式下,軟件開發(fā)人員可以提供單個(gè)或多個(gè)物理機(jī)或虛機(jī),同時(shí)在每個(gè)主機(jī)上運(yùn)行多個(gè)服務(wù)實(shí)例。 此模式有幾種不同的實(shí)現(xiàn)形式

    2024年01月17日
    瀏覽(27)
  • 探索云原生技術(shù)之基石-Docker容器入門篇(1)

    探索云原生技術(shù)之基石-Docker容器入門篇(1)

    本博文一共有6篇,如下 探索云原生技術(shù)之基石-Docker容器入門篇(1) 探索云原生技術(shù)之基石-Docker容器入門篇(2) 探索云原生技術(shù)之基石-Docker容器入門篇(3) 等你對Docker有一定理解的時(shí)候可以看高級篇,不過不太建議。 探索云原生技術(shù)之基石-Docker容器高級篇(1) 探索云原生技術(shù)之

    2023年04月12日
    瀏覽(19)
  • 探索云原生技術(shù)之基石-Docker容器入門篇(4)

    探索云原生技術(shù)之基石-Docker容器入門篇(4)

    本博文一共有7篇,如下 探索云原生技術(shù)之基石-Docker容器入門篇(1) 探索云原生技術(shù)之基石-Docker容器入門篇(2) 探索云原生技術(shù)之基石-Docker容器入門篇(3) 探索云原生技術(shù)之基石-Docker容器入門篇(4) ,=由于篇幅過長,所以另起一篇 等你對Docker有一定理解的時(shí)候可以看高級篇,不

    2023年04月08日
    瀏覽(16)
  • 探索云原生技術(shù)之基石-Docker容器入門篇(2)

    探索云原生技術(shù)之基石-Docker容器入門篇(2)

    本博文一共有6篇,如下 探索云原生技術(shù)之基石-Docker容器入門篇(1) 探索云原生技術(shù)之基石-Docker容器入門篇(2) 探索云原生技術(shù)之基石-Docker容器入門篇(3) 等你對Docker有一定理解的時(shí)候可以看高級篇,不過不太建議。 探索云原生技術(shù)之基石-Docker容器高級篇(1) 探索云原生技術(shù)之

    2023年04月14日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包