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

[Docker精進(jìn)篇] Docker鏡像構(gòu)建和實(shí)踐 (三)

這篇具有很好參考價(jià)值的文章主要介紹了[Docker精進(jìn)篇] Docker鏡像構(gòu)建和實(shí)踐 (三)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

前言:

Docker鏡像構(gòu)建的作用是將應(yīng)用程序及其依賴(lài)打包到一個(gè)可移植、自包含的鏡像中,以便在不同環(huán)境中快速、可靠地部署和運(yùn)行應(yīng)用程序。

[Docker精進(jìn)篇] Docker鏡像構(gòu)建和實(shí)踐 (三),Docker精進(jìn),docker,容器,云原生,網(wǎng)絡(luò),運(yùn)維,原力計(jì)劃


這篇文章是我的筆記,旨在帶您快速入門(mén)上手docker,更加深入學(xué)習(xí)docker知識(shí)

Docker鏡像構(gòu)建

做事三步走:是什么,為什么,怎么辦 我們一步一步來(lái)進(jìn)行分析

磨刀不誤砍柴工,讓我們一步一步去分析和深入。??

1??是什么?

Docker鏡像構(gòu)建提供了一種強(qiáng)大且靈活的方式來(lái)打包、部署和管理應(yīng)用程序。通過(guò)實(shí)現(xiàn)環(huán)境一致性、快速部署、版本控制、資源隔離和易維護(hù)性等優(yōu)點(diǎn),它大大簡(jiǎn)化了應(yīng)用程序的交付和運(yùn)維過(guò)程,提高了開(kāi)發(fā)和運(yùn)維的效率,并促進(jìn)了應(yīng)用程序的可移植性和可靠性。

[Docker精進(jìn)篇] Docker鏡像構(gòu)建和實(shí)踐 (三),Docker精進(jìn),docker,容器,云原生,網(wǎng)絡(luò),運(yùn)維,原力計(jì)劃

2??為什么?

相信大家能從往期文章學(xué)到挺多docker的相關(guān)知識(shí),在看了上面的相關(guān)介紹,應(yīng)該很清楚的知道鏡像構(gòu)建的好處和優(yōu)點(diǎn),下面我簡(jiǎn)單匯總總結(jié)一下:

  1. 環(huán)境一致性和可移植性: Docker鏡像構(gòu)建允許將應(yīng)用程序及其所有依賴(lài)項(xiàng)打包到一個(gè)獨(dú)立的、可移植的單元中。這意味著可以在不同的環(huán)境中運(yùn)行相同的鏡像,無(wú)需擔(dān)心由于環(huán)境差異而導(dǎo)致的不兼容問(wèn)題。無(wú)論是開(kāi)發(fā)、測(cè)試還是生產(chǎn)環(huán)境, 可以使用相同的鏡像保持環(huán)境一致性,確保應(yīng)用程序在不同環(huán)境中的行為一致。

  2. 快速部署和擴(kuò)展: Docker鏡像構(gòu)建使部署應(yīng)用程序變得非常簡(jiǎn)單和快速。一旦構(gòu)建好鏡像,可以將其部署到任何支持Docker的主機(jī)上,無(wú)需繁瑣的依賴(lài)項(xiàng)安裝和配置過(guò)程。此外,由于鏡像具有輕量級(jí)的特性,可以快速地復(fù)制和部署多個(gè)容器實(shí)例,從而輕松地進(jìn)行應(yīng)用程序的水平擴(kuò)展。

  3. 版本控制和可重復(fù)性: Docker鏡像構(gòu)建可以與版本控制系統(tǒng)(如Git)集成,將構(gòu)建過(guò)程納入代碼管理。通過(guò)在代碼庫(kù)中包含Dockerfile,可以確保每個(gè)構(gòu)建步驟都是可追溯和可重復(fù)的。這樣一來(lái),可以輕松地管理和維護(hù)應(yīng)用程序的不同版本,以及構(gòu)建和發(fā)布過(guò)程的變更。

  4. 資源隔離和安全性: Docker容器提供了一種輕量級(jí)的虛擬化方式,能夠?qū)崿F(xiàn)資源隔離并增強(qiáng)應(yīng)用程序的安全性。鏡像構(gòu)建過(guò)程允許您明確定義應(yīng)用程序的依賴(lài)項(xiàng)和運(yùn)行時(shí)環(huán)境,從而減少了應(yīng)用程序與宿主機(jī)之間的耦合。這種隔離性可以防止應(yīng)用程序?qū)χ鳈C(jī)環(huán)境的干擾,同時(shí)減少了系統(tǒng)故障和依賴(lài)沖突的風(fēng)險(xiǎn)。

  5. 易于維護(hù)和更新: 通過(guò)Docker鏡像構(gòu)建,您可以輕松地更新和維護(hù)應(yīng)用程序。一旦構(gòu)建了鏡像,您可以對(duì)其進(jìn)行版本控制和標(biāo)記,以便追蹤和管理不同版本的應(yīng)用程序。當(dāng)需要進(jìn)行更新或修復(fù)時(shí),只需構(gòu)建一個(gè)新的鏡像,然后將其部署到運(yùn)行中的容器上即可。這種更新過(guò)程通常非常簡(jiǎn)單和可靠,減少了應(yīng)用程序維護(hù)的工作量和風(fēng)險(xiǎn)。

3??鏡像構(gòu)建

鏡像構(gòu)建有兩種方式,一種是使用現(xiàn)有容器去構(gòu)建新鏡像,一種是通過(guò)dockerfile去構(gòu)建新的鏡像。

[Docker精進(jìn)篇] Docker鏡像構(gòu)建和實(shí)踐 (三),Docker精進(jìn),docker,容器,云原生,網(wǎng)絡(luò),運(yùn)維,原力計(jì)劃

一、用現(xiàn)有容器構(gòu)建新鏡像

首先我們先來(lái)了解docker鏡像構(gòu)建命令:

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

下面我們來(lái)一步一步講解:

  • OPTIONS:可選參數(shù),用于配置創(chuàng)建鏡像的各種選項(xiàng)。

    • -a, --author: 設(shè)置新鏡像的作者信息。
    • -c, --change: 應(yīng)用指定的 Dockerfile 指令。
    • -m, --message: 設(shè)置新鏡像的提交消息。
    • -p, --pause: 在創(chuàng)建過(guò)程中暫停容器。

例子:
創(chuàng)建一個(gè)新鏡像,并設(shè)置作者信息為 “John Doe”。

	docker commit -a "John Doe" container_id repository:tag

創(chuàng)建一個(gè)新鏡像,并在構(gòu)建過(guò)程中應(yīng)用指定的 Dockerfile 指令,例如設(shè)置一個(gè)名為 DEBUG 的環(huán)境變量

	docker commit -c "ENV DEBUG=true" container_id repository:tag

創(chuàng)建一個(gè)新鏡像,并設(shè)置提交消息為 “Added new dependencies”。

	docker commit -m "Added new dependencies" container_id repository:tag

暫停容器的運(yùn)行狀態(tài),并將其轉(zhuǎn)換為一個(gè)新的可運(yùn)行鏡像

	docker commit -p container_id repository:tag

docker commit 命令時(shí),一般使用 Dockerfile 來(lái)定義和構(gòu)建鏡像,以便更好地管理和復(fù)現(xiàn)構(gòu)建過(guò)程。

二、Dockerfile構(gòu)建鏡像

Dockerfile 是一個(gè)用來(lái)構(gòu)建鏡像的文本文件,文本內(nèi)容包含了一條條構(gòu)建鏡像所需的指令和說(shuō)明
[Docker精進(jìn)篇] Docker鏡像構(gòu)建和實(shí)踐 (三),Docker精進(jìn),docker,容器,云原生,網(wǎng)絡(luò),運(yùn)維,原力計(jì)劃
首先我們先看示例:

# 指明構(gòu)建的新鏡像是來(lái)自于 centos:7 基礎(chǔ)鏡像
FROM centos:7
# 通過(guò)鏡像標(biāo)簽聲明了作者信息
LABEL maintainer="mszlu.com"
# 設(shè)置工作目錄
WORKDIR /usr/local
# 新鏡像構(gòu)建成功以后創(chuàng)建指定目錄
RUN mkdir -p /usr/local/java && mkdir -p /usr/local/tomcat
# 拷貝文件到鏡像中并解壓
ADD jdk-11.0.8_linux-x64_bin.tar.gz /usr/local/java
ADD apache-tomcat-9.0.59.tar.gz /usr/local/tomcat
# 暴露容器運(yùn)行時(shí)的 8080 監(jiān)聽(tīng)端口給外部
EXPOSE 8080
# 設(shè)置容器內(nèi) JAVA_HOME 環(huán)境變量
ENV JAVA_HOME /usr/local/java/jdk-11.0.8/
ENV PATH $PATH:$JAVA_HOME/bin
# 啟動(dòng)容器時(shí)啟動(dòng) tomcat
CMD ["/usr/local/tomcat/apache-tomcat-9.0.59/bin/catalina.sh", "run"]

內(nèi)容很長(zhǎng),不用擔(dān)心,我們一步一步去分析:
命令:代碼在上,翻譯在下,通過(guò)幾個(gè)實(shí)例讓你進(jìn)一步了解相關(guān)命令使用

FROM <image>:<tag>

指明構(gòu)建的新鏡像是來(lái)自于哪個(gè)基礎(chǔ)鏡像,如果沒(méi)有選擇 tag,那么默認(rèn)值為 latest。

MAINTAINER <name>

指明鏡像維護(hù)者及其聯(lián)系方式(一般是郵箱地址)。官方說(shuō)明已過(guò)時(shí),推薦使用 LABEL。

LABEL maintainer="mszlu.com"

功能是為鏡像指定標(biāo)簽。也可以使用 LABEL 來(lái)指定鏡像作者

RUN mkdir -p /usr/local/java

構(gòu)建鏡像時(shí)運(yùn)行的 Shell 命令,比如構(gòu)建的新鏡像中我們想在 /usr/local 目錄下創(chuàng)建一個(gè) java 目錄。

ADD jdk-11.0.6_linux-x64_bin.tar.gz /usr/local/java

拷貝文件或目錄到鏡像中。將本地的jdk拷貝到虛擬機(jī)中/usr/local/java

COPY jdk-11.0.6_linux-x64_bin.tar.gz /usr/local/java

拷貝文件或目錄到鏡像中。將本地的jdk拷貝到虛擬機(jī)中/usr/local/java, 用法同 ADD,只是不支持自動(dòng)下載和解壓。

EXPOSE 80 443 8080/tcp

暴露容器運(yùn)行時(shí)的監(jiān)聽(tīng)端口給外部,可以指定端口是監(jiān)聽(tīng) TCP 還是 UDP,如果未指定協(xié)議,則默認(rèn)為 TCP。想使得容器與宿主機(jī)的端口有映射關(guān)系,必須在容器啟動(dòng)的時(shí)候加上 -p 參數(shù)

ENV JAVA_HOME /usr/local/java/jdk-11.0.6/

設(shè)置容器內(nèi)環(huán)境變量。

CMD ehco $JAVA_HOME

啟動(dòng)容器時(shí)執(zhí)行的 Shell 命令。在 Dockerfile 中只能有一條 CMD 指令。如果設(shè)置了多條 CMD,只有最后一條 CMD 會(huì)生效。如果創(chuàng)建容器的時(shí)候指定了命令,則 CMD 命令會(huì)被替代,會(huì)被docker run給覆蓋掉

ENTRYPOINT ehco $JAVA_HOME

啟動(dòng)容器時(shí)執(zhí)行的 Shell 命令,同 CMD 類(lèi)似,不會(huì)被 docker run 命令行指定的參數(shù)所覆蓋。在 Dockerfile 中只能有一條 ENTRYPOINT 指令。如果設(shè)置了多條 ENTRYPOINT,只有最后一條 ENTRYPOINT 會(huì)生效。

WORKDIR /usr/local

為 RUN、CMD、ENTRYPOINT 以及 COPY 和 AND 設(shè)置工作目錄

VOLUME ["/var/lib/mysql"]

容器的 /var/lib/mysql 目錄會(huì)在運(yùn)行時(shí)自動(dòng)掛載為匿名卷,匿名卷在宿主機(jī)的 /var/lib/docker/volumes 目錄下

4??總結(jié)

[Docker精進(jìn)篇] Docker鏡像構(gòu)建和實(shí)踐 (三),Docker精進(jìn),docker,容器,云原生,網(wǎng)絡(luò),運(yùn)維,原力計(jì)劃
Docker鏡像構(gòu)建是將應(yīng)用程序和其依賴(lài)項(xiàng)打包到一個(gè)獨(dú)立、可移植的容器環(huán)境中的過(guò)程。通過(guò)使用Dockerfile定義構(gòu)建步驟和環(huán)境配置,可以實(shí)現(xiàn)快速、一致和可重復(fù)的鏡像構(gòu)建。鏡像構(gòu)建的好處包括環(huán)境一致性、快速部署、版本控制、資源隔離和易于維護(hù)更新。

如果您在學(xué)習(xí)過(guò)程中有什么疑問(wèn)或者不懂的地方,可以隨時(shí)私信我,看到會(huì)及時(shí)回復(fù)??!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-655971.html

到了這里,關(guān)于[Docker精進(jìn)篇] Docker鏡像構(gòu)建和實(shí)踐 (三)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 手動(dòng)構(gòu)建自己的docker容器鏡像實(shí)戰(zhàn)

    之前的實(shí)戰(zhàn)中,我們實(shí)戰(zhàn)中,我們使用的鏡像都是鏡像倉(cāng)庫(kù)已有的鏡像。 已有的鏡像都是別人已經(jīng)開(kāi)發(fā)好上傳的。今天我們一起來(lái)看看如何構(gòu)建自己的鏡像并上傳到鏡像倉(cāng)庫(kù)中。 ??個(gè)人主頁(yè):我是沐風(fēng)曉月 ??個(gè)人簡(jiǎn)介:大家好,我是沐風(fēng)曉月,阿里云社區(qū)博客專(zhuān)家????

    2023年04月10日
    瀏覽(27)
  • Docker入門(mén)流程(創(chuàng)建容器到構(gòu)建鏡像)

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

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

    2024年02月08日
    瀏覽(22)
  • 【云原生|Docker系列第3篇】Docker鏡像的入門(mén)實(shí)踐

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

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

    2024年02月16日
    瀏覽(20)
  • Docker構(gòu)建jar包鏡像并運(yùn)行容器

    Docker構(gòu)建jar包鏡像并運(yùn)行容器

    Docker需要提前安裝,不懂的參考: Centos7操作Docker_JohnGene的博客-CSDN博客_centos7 操作docker 安裝Docker安裝Docker官方源:yum-config-manager –add-repo http://download.docker.com/linux/centos/docker-ce.repo更新源:yum makecache fast安裝:yum install docker-ce啟動(dòng)并設(shè)為開(kāi)機(jī)自啟:systemctl enable docker #設(shè)為開(kāi)機(jī)

    2024年02月09日
    瀏覽(24)
  • 【云原生】Docker鏡像和容器的導(dǎo)入導(dǎo)出及常用命令

    大家好,本文是對(duì) Docker 的鏡像和容器的一些操作指令的匯總,比如鏡像和容器的導(dǎo)入導(dǎo)出,以及一些在使用過(guò)程中的常用命令。希望對(duì)大家有所幫助~ 1.1、鏡像的導(dǎo)入導(dǎo)出 1.1.1、鏡像的保存 通過(guò)鏡像ID保存 方式一: 例如: 方式二: 例如: 通過(guò)鏡像 repository 和 tag 保存 例如

    2024年02月02日
    瀏覽(19)
  • 【云原生|Docker系列第4篇】Docker的容器的入門(mén)實(shí)踐

    【云原生|Docker系列第4篇】Docker的容器的入門(mén)實(shí)踐

    歡迎來(lái)到云原生系列的第4篇博客!在前面的兩篇博客中,我們已經(jīng)學(xué)習(xí)了Docker鏡像的基本概念和入門(mén)實(shí)踐。本篇博客將帶您深入了解Docker容器,探索如何使用Docker容器來(lái)構(gòu)建、運(yùn)行和管理應(yīng)用程序。無(wú)論您是新手還是有一定經(jīng)驗(yàn)的開(kāi)發(fā)者,通過(guò)本篇博客的實(shí)踐指導(dǎo),您將能夠

    2024年02月17日
    瀏覽(21)
  • [Docker精進(jìn)篇] 詳細(xì)配置和部署鏡像(一) 文末送書(shū)

    [Docker精進(jìn)篇] 詳細(xì)配置和部署鏡像(一) 文末送書(shū)

    前言: 容器提供了將應(yīng)用程序的代碼、運(yùn)行時(shí)、系統(tǒng)工具、系統(tǒng)庫(kù)和配置打包到一個(gè)實(shí)例中的標(biāo)準(zhǔn)方法。 經(jīng)過(guò)幾天的仔細(xì)學(xué)習(xí),感覺(jué)docker很好用。這篇文章是我的筆記,旨在帶您快速入門(mén)上手docker Docker架構(gòu):分為三部分,客戶(hù)端,Docker服務(wù)端,倉(cāng)庫(kù)。 Docker服務(wù)端 又稱(chēng)為D

    2024年02月13日
    瀏覽(19)
  • Docker進(jìn)階:容器數(shù)據(jù)卷與Dockerfile構(gòu)建鏡像(發(fā)布)

    Docker進(jìn)階:容器數(shù)據(jù)卷與Dockerfile構(gòu)建鏡像(發(fā)布)

    ??The Begin??點(diǎn)點(diǎn)關(guān)注,收藏不迷路?? 1、完成數(shù)據(jù)持久化和共享數(shù)據(jù),docker容器中的數(shù)據(jù),同步到本地。 2、重要數(shù)據(jù)back_up 特點(diǎn): 實(shí)時(shí)生效、數(shù)據(jù)卷可在容器之間共享和重用數(shù)據(jù)、數(shù)據(jù)卷中的更改不會(huì)包含在鏡像更新中、數(shù)據(jù)卷的生命周期會(huì)一直延續(xù)到?jīng)]有容器使用它為止

    2024年02月09日
    瀏覽(27)
  • Docker實(shí)踐筆記7:構(gòu)建MySQL 8鏡像

    本教程將指導(dǎo)您使用Dockerfile構(gòu)建和運(yùn)行一個(gè)MySQL 8容器。讓我們開(kāi)始吧! 在您的項(xiàng)目根目錄下創(chuàng)建一個(gè)名為Dockerfile的文件。以下是Dockerfile的示例內(nèi)容: 在src文件夾下創(chuàng)建一個(gè)名為my.cnf的文件,該文件包含MySQL的配置信息。您可以根據(jù)自己的需求進(jìn)行配置。以下是一個(gè)示例配

    2024年02月03日
    瀏覽(19)
  • Docker基礎(chǔ)入門(mén):容器數(shù)據(jù)卷與Dockerfile構(gòu)建鏡像(發(fā)布)

    Docker基礎(chǔ)入門(mén):容器數(shù)據(jù)卷與Dockerfile構(gòu)建鏡像(發(fā)布)

    ??The Begin??點(diǎn)點(diǎn)關(guān)注,收藏不迷路?? 1、完成數(shù)據(jù)持久化和共享數(shù)據(jù),docker容器中的數(shù)據(jù),同步到本地。 2、重要數(shù)據(jù)back_up 特點(diǎn): 實(shí)時(shí)生效、數(shù)據(jù)卷可在容器之間共享和重用數(shù)據(jù)、數(shù)據(jù)卷中的更改不會(huì)包含在鏡像更新中、數(shù)據(jù)卷的生命周期會(huì)一直延續(xù)到?jīng)]有容器使用它為止

    2024年02月10日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包