最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Docker概述與安裝方法

 更新時(shí)間:2026年04月21日 09:49:56   作者:齊瀟宇  
本文主要介紹了Docker的基本概念、發(fā)展歷程、關(guān)鍵技術(shù)演進(jìn)、架構(gòu)及安裝、配置、使用、鏡像管理等以及性能優(yōu)化等內(nèi)容,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧

一、 Docker概述

Docker簡介

Docker,翻譯過來就是碼頭工人

Docker是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可抑制的容器中,然后發(fā)布到任何流行的Linux機(jī)器上,也可以實(shí)現(xiàn)虛擬化。容器完全使用沙盒機(jī)制,相互之間不會(huì)存在任何接口。幾乎沒有性能開銷,可以很容易的在機(jī)器和數(shù)據(jù)中心運(yùn)行。最重要的是,他們不依賴于任何語言、框架或者包裝系統(tǒng)。

Docker是dotCloud公司開源的一個(gè)基于LXC的高級容器引擎,源碼托管在Github上,基于go語言并且遵從Apache2.0協(xié)議開源。 GitHub地址https://github.com/moby/moby

LXC主要通過Kernel的namespace實(shí)現(xiàn)每個(gè)用戶實(shí)例之間的項(xiàng)目隔離,通過cgroup實(shí)現(xiàn)對資源的配額和調(diào)度。

名詞解釋

沙盒:沙盒也叫沙箱(sandbox)。在計(jì)算機(jī)領(lǐng)域指一種虛擬技術(shù),而且多用于計(jì)算機(jī)安全技術(shù)。安全軟件可以讓它在沙盒中運(yùn)行,如果含有惡意行為,則禁止程序的進(jìn)一步運(yùn)行,而這不會(huì)對系統(tǒng)造成任何危害。

LXC:Linux Container的簡寫。Linux Container 容器是一種內(nèi)核虛擬化技術(shù),可以提供輕量級的虛擬化,以便隔離進(jìn)程和資源,而且不需要提供指令解釋機(jī)制以及全虛擬化的其他復(fù)雜性。

cgroup:控制組,Control Groups,是一種內(nèi)核功能,用于限制、統(tǒng)計(jì)和隔離一個(gè)進(jìn)程組(process groups)所使用的物理資源,如CPU、內(nèi)存、磁盤輸入輸出等。從2.6.24內(nèi)核引入,它將進(jìn)程管理從cpuset中剝離出來,并非全新創(chuàng)造的。cgroup提供了一個(gè)虛擬文件系統(tǒng),作為分組管理和各子系統(tǒng)設(shè)置的接口。因此,使用cgroup時(shí),必須掛載cgroup文件系統(tǒng)。

cgroup的主要目的是實(shí)現(xiàn)資源限制和進(jìn)程管理。通過將進(jìn)程分組,可以對各個(gè)組內(nèi)的進(jìn)程進(jìn)行資源限制,例如CPU、內(nèi)存和磁盤輸入輸出等。這有助于確保系統(tǒng)資源得到合理分配,同時(shí)也可以避免單個(gè)進(jìn)程過度消耗資源,導(dǎo)致系統(tǒng)性能下降。

docker官網(wǎng): https://www.docker.com
docker中文庫: https://www.docker.org.cn/

Docker版本演化與技術(shù)特征更新

1、Docker發(fā)展歷程概述

Docker自2013年誕生以來,經(jīng)歷了從簡單的容器工具到完整的容器生態(tài)系統(tǒng)的演變過程。其版本演化可以分為四個(gè)主要階段:

1. 初創(chuàng)期(2013-2014)

  • 2013年3月:Docker 0.1.0發(fā)布,基于LXC技術(shù)
  • 2014年6月:Docker 1.0發(fā)布,標(biāo)志著生產(chǎn)就緒

2. 成長期(2015-2016)

  • 引入Swarm集群管理
  • 建立開放容器倡議(OCI)標(biāo)準(zhǔn)

3. 成熟期(2017-2019)

  • 采用新的版本命名方案(YY.MM)
  • 分化為CE(社區(qū)版)和EE(企業(yè)版)

4. 現(xiàn)代期(2020至今)

  • 深度集成Kubernetes
  • 專注于開發(fā)者體驗(yàn)和安全增強(qiáng)

2、重大版本技術(shù)特征更新

Docker 1.0 (2014年6月)

  • 核心技術(shù):從LXC轉(zhuǎn)向libcontainer
  • 鏡像格式:建立分層存儲(chǔ)體系
  • 網(wǎng)絡(luò)模型:基礎(chǔ)橋接網(wǎng)絡(luò)支持

Docker 1.12 (2016年7月)

  • Swarm模式:內(nèi)置容器編排功能
  • 服務(wù)發(fā)現(xiàn):內(nèi)置DNS服務(wù)
  • 安全增強(qiáng):TLS加密通信

Docker 17.03 (2017年3月)

  • 版本改革:采用YY.MM版本號
  • 多架構(gòu)支持:ARM平臺(tái)正式支持
  • 插件系統(tǒng):卷和網(wǎng)絡(luò)插件標(biāo)準(zhǔn)化

Docker 18.09 (2018年11月)

  • BuildKit:實(shí)驗(yàn)性下一代構(gòu)建引擎
  • Rootless模式:非root用戶運(yùn)行容器
  • cgroups v2:初步支持新控制組系統(tǒng)

Docker 19.03 (2019年7月)

  • GPU支持:NVIDIA GPU容器化
  • 性能優(yōu)化:containerd集成改進(jìn)
  • Windows容器:完善WSL2支持

Docker 20.10 (2020年12月)

  • BuildKit默認(rèn):取代經(jīng)典構(gòu)建引擎
  • Compose V2:重寫為Go版本
  • 檢查點(diǎn)/恢復(fù):實(shí)驗(yàn)性容器狀態(tài)保存

Docker 23.0 (2023年1月)

  • 構(gòu)建革新:完全移除經(jīng)典構(gòu)建引擎
  • 鏡像管理:改進(jìn)垃圾回收機(jī)制
  • 安全掃描:內(nèi)置漏洞掃描工具

3、關(guān)鍵技術(shù)演進(jìn)路線

1. 容器運(yùn)行時(shí)演進(jìn)

  • libcontainer → runc → containerd
  • 符合OCI運(yùn)行時(shí)規(guī)范
  • gVisor、Kata Containers等安全容器支持

2. 構(gòu)建系統(tǒng)革新

  • 傳統(tǒng)構(gòu)建 → BuildKit
  • 多階段構(gòu)建支持
  • 構(gòu)建緩存優(yōu)化和并行構(gòu)建

3. 網(wǎng)絡(luò)模型發(fā)展

  • 基礎(chǔ)橋接網(wǎng)絡(luò) → overlay網(wǎng)絡(luò)
  • Macvlan/IPvlan支持
  • 服務(wù)網(wǎng)格集成能力

4. 存儲(chǔ)驅(qū)動(dòng)優(yōu)化

  • AUFS → overlay2
  • 快照和存儲(chǔ)配額管理
  • 卷插件生態(tài)系統(tǒng)

5. 安全增強(qiáng)路徑

  • 用戶命名空間隔離
  • Rootless容器模式
  • 內(nèi)容信任和鏡像簽名

4、當(dāng)前技術(shù)趨勢

  • 云原生集成:與Kubernetes深度整合
  • 開發(fā)者體驗(yàn):簡化本地開發(fā)工作流
  • 安全強(qiáng)化:默認(rèn)安全配置和策略
  • 性能優(yōu)化:資源利用率和啟動(dòng)速度
  • 多平臺(tái)支持:ARM、RISC-V等架構(gòu)

Docker容器技術(shù)與虛擬機(jī)的區(qū)別

相同點(diǎn):docker容器技術(shù)和虛擬機(jī)技術(shù),都是虛擬化技術(shù)。

不同點(diǎn)

虛擬機(jī)技術(shù):

docker容器技術(shù):

通過圖片,我們很明顯的看到docker有著比虛擬機(jī)更少的抽象層。 由于docker不需要Hypervisor實(shí)現(xiàn)硬件資源虛擬化,運(yùn)行在docker容器上的程序直接使用的都是實(shí)際物理機(jī)的硬件資源。所以docker效率比虛擬機(jī)效率高。達(dá)到了秒級啟動(dòng)的地步。

Docker相較于VM的優(yōu)點(diǎn)

  • 比VM小、快,Docker容器的尺寸減小相比于整個(gè)虛擬機(jī)大大簡化了分布到云和分發(fā)時(shí)間的開銷。Docker啟動(dòng)一個(gè)容器實(shí)例時(shí)間僅僅需要幾秒鐘。
  • Docker是一個(gè)開放的平臺(tái),構(gòu)建、發(fā)布和運(yùn)行分布式應(yīng)用程序。
  • 開發(fā)人員不需要關(guān)注具體是哪個(gè)Linux操作系統(tǒng)。
  • Google、微軟(azure)、亞馬遜(AWS)、IBM等都支持docker。
  • Docker支持Unix/Linux操作系統(tǒng),也支持Windows和Mac。
  • 一次封裝,到處運(yùn)行

Docker局限性

Docker用于應(yīng)用程序時(shí)是最有用的,但并不包含數(shù)據(jù)。日志、數(shù)據(jù)庫等通常放在Docker容器外。一個(gè)容器的鏡像通常都很小,不用存儲(chǔ)大量數(shù)據(jù),存儲(chǔ)可以通過外部掛載等方式使用,比如:NFS、ipsan、MFS、ceph等 ,或者docker -v 命令進(jìn)行映射磁盤。 總之,docker只用于計(jì)算,存儲(chǔ)交給別人。

Docker通常用于如下場景

  • web應(yīng)用的自動(dòng)化打包和發(fā)布;
  • 自動(dòng)化測試和持續(xù)集成、發(fā)布;
  • 在服務(wù)型環(huán)境中部署和調(diào)整數(shù)據(jù)庫或其他的后臺(tái)應(yīng)用;
  • 從頭編譯或者擴(kuò)展現(xiàn)有的OpenShift或Cloud Foundry平臺(tái)來搭建自己的PaaS環(huán)境。

二、 Docker 架構(gòu)

Docker 包括三個(gè)基本概念

  • 鏡像(Image):Docker 鏡像(Image),就相當(dāng)于是一個(gè) root 文件系統(tǒng)。比如官方鏡像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統(tǒng)的 root 文件系統(tǒng)。
  • 容器(Container):鏡像(Image)和容器(Container)的關(guān)系,就像是面向?qū)ο蟪绦蛟O(shè)計(jì)中的類和實(shí)例一樣,鏡像是靜態(tài)的定義,容器是鏡像運(yùn)行時(shí)的實(shí)體。容器可以被創(chuàng)建、啟動(dòng)、停止、刪除、暫停等。
  • 倉庫(Repository):倉庫可看成一個(gè)代碼控制中心,用來保存鏡像。

Docker 使用客戶端-服務(wù)器 (C/S) 架構(gòu)模式,使用遠(yuǎn)程API來管理和創(chuàng)建Docker容器。

Docker 容器通過 Docker 鏡像來創(chuàng)建。

概念說明
Docker 鏡像(Images)Docker 鏡像是用于創(chuàng)建 Docker 容器的模板,比如 CentOS 系統(tǒng)。
Docker 容器(Container)容器是獨(dú)立運(yùn)行的一個(gè)或一組應(yīng)用,是鏡像運(yùn)行時(shí)的實(shí)體。
Docker 客戶端(Client)Docker 客戶端通過命令行或者其他工具使用 Docker SDK (https://docs.docker.com/develop/sdk/) 與 Docker 的守護(hù)進(jìn)程通信。
Docker 主機(jī)(Host)一個(gè)物理或者虛擬的機(jī)器用于執(zhí)行 Docker 守護(hù)進(jìn)程和容器。
Docker RegistryDocker 倉庫用來保存鏡像,可以理解為代碼控制中的代碼倉庫。Docker Hub(https://hub.docker.com) 提供了龐大的鏡像集合供使用。一個(gè) Docker Registry 中可以包含多個(gè)倉庫(Repository);每個(gè)倉庫可以包含多個(gè)標(biāo)簽(Tag);每個(gè)標(biāo)簽對應(yīng)一個(gè)鏡像。通常,一個(gè)倉庫會(huì)包含同一個(gè)軟件不同版本的鏡像,而標(biāo)簽就常用于對應(yīng)該軟件的各個(gè)版本。我們可以通過 <倉庫名>:<標(biāo)簽> 的格式來指定具體是這個(gè)軟件哪個(gè)版本的鏡像。如果不給出標(biāo)簽,將以 latest 作為默認(rèn)標(biāo)簽。
Docker MachineDocker Machine是一個(gè)簡化Docker安裝的命令行工具,通過一個(gè)簡單的命令行即可在相應(yīng)的平臺(tái)上安裝Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。

三、 Docker安裝

1、使用官方安裝腳本自動(dòng)安裝

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

2、手動(dòng)安裝

#rocky8 安裝
yum remove runc -y
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce

3、啟動(dòng) Docker

[root@localhost ~]# systemctl start docker
##通過運(yùn)行 hello-world 鏡像來驗(yàn)證是否正確安裝了 Docker Engine-Community 。
[root@localhost ~]# docker run hello-world

4、卸載 Docker

##刪除安裝包
[root@localhost ~]# yum remove docker-ce
##刪除鏡像、容器、配置文件等內(nèi)容
[root@localhost ~]# rm -rf /var/lib/docker

四、 Docker 鏡像加速

國內(nèi)從 DockerHub 拉取鏡像有時(shí)會(huì)遇到困難,此時(shí)可以配置鏡像加速器。Docker 官方和國內(nèi)很多云服務(wù)商都提供了國內(nèi)加速器服務(wù),

##編輯配置文件
[root@localhost ~]# 
cat <<EOF >>/etc/docker/daemon.json
{
 ? ?"registry-mirrors": [
 ? ? ? ?"https://0vmzj3q6.mirror.aliyuncs.com",
 ? ? ? ?"https://docker.m.daocloud.io",
 ? ? ? ?"https://mirror.baidubce.com",
 ? ? ? ?"https://dockerproxy.com",
 ? ? ? ?"https://mirror.iscas.ac.cn",
 ? ? ? ?"https://huecker.io",
 ? ? ? ?"https://dockerhub.timeweb.cloud",
 ? ? ? ?"https://noohub.ru",
 ? ? ? ?"https://vlgh0kqj.mirror.aliyuncs.com"
 ?  ]
}
EOF
?
##重新啟動(dòng)服務(wù)
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

五、/etc/docker/daemon.json 配置文件

核心配置字段

  • data-root
    • 指定 Docker 數(shù)據(jù)存儲(chǔ)路徑(替代舊的 graph 選項(xiàng))
    • 示例:"/mnt/docker-data"
  • exec-opts
    • 運(yùn)行時(shí)選項(xiàng)(如 cgroup 驅(qū)動(dòng))
    • 示例:["native.cgroupdriver=systemd"]
  • log-driver
    • 默認(rèn)容器日志驅(qū)動(dòng)(如 json-file, syslog, journald
    • 示例:"json-file"
  • log-opts
    • 日志驅(qū)動(dòng)的配置選項(xiàng)
    • 示例:{"max-size": "10m", "max-file": "3"}

網(wǎng)絡(luò)配置

  • bip
    • 指定網(wǎng)橋 IP 地址(如 "192.168.1.1/24"
    • default-address-pools
    • 自定義默認(rèn) IP 地址池
  • 示例:[{"base": "10.10.0.0/16", "size": 24}]
  • dns
    • 自定義 DNS 服務(wù)器
    • 示例:["8.8.8.8", "1.1.1.1"]
  • mtu
    • 容器網(wǎng)絡(luò) MTU 值

安全配置

  • tlsverify
    • 啟用 TLS 驗(yàn)證(true/false
  • tlscacert
    • CA 證書路徑(如 "/etc/docker/ca.pem"
  • userns-remap
    • 啟用用戶命名空間隔離
  • 示例:"default"

鏡像與存儲(chǔ)

  • storage-driver
    • 存儲(chǔ)驅(qū)動(dòng)(如 overlay2, btrfs
  • registry-mirrors
    • 鏡像加速器地址
    • 示例:["https://mirror.aliyuncs.com"]
  • insecure-registries
    • 允許非 HTTPS 私有倉庫
    • 示例:["myregistry.local:5000"]

性能與資源

  • max-concurrent-downloads
    • 鏡像下載并發(fā)數(shù)(默認(rèn) 3
  • live-restore
    • 守護(hù)進(jìn)程崩潰時(shí)保持容器運(yùn)行(true/false

實(shí)驗(yàn)性功能

  • features
    • 啟用實(shí)驗(yàn)性功能
  • 示例:{"buildkit": true}

完整示例

{
 ?"data-root": "/var/lib/docker",
 ?"exec-opts": ["native.cgroupdriver=systemd"],
 ?"log-driver": "json-file",
 ?"log-opts": {
 ? ?"max-size": "10m",
 ? ?"max-file": "3"
  },
 ?"registry-mirrors": ["https://registry.example.com"],
 ?"insecure-registries": ["myregistry.local:5000"],
 ?"live-restore": true,
 ?"features": {
 ? ?"buildkit": true
  }
}

注意事項(xiàng)

  • 修改后需重啟 Docker 服務(wù):sudo systemctl restart docker
  • 字段名稱嚴(yán)格區(qū)分大小寫
  • 可通過 docker info 驗(yàn)證配置是否生效

如果需要針對特定場景的配置建議,請?zhí)峁└嘈枨蠹?xì)節(jié)。

到此這篇關(guān)于Docker概述與安裝方法的文章就介紹到這了,更多相關(guān)Docker概述與安裝內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker鏡像保存為文件及從文件導(dǎo)入鏡像的方法

    Docker鏡像保存為文件及從文件導(dǎo)入鏡像的方法

    本篇文章主要介紹了Docker鏡像保存為文件及從文件導(dǎo)入鏡像的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Ubuntu20.04上安裝docker步驟及docker使用方法

    Ubuntu20.04上安裝docker步驟及docker使用方法

    Docker是一個(gè)可以簡化容器中應(yīng)用程序進(jìn)程管理過程的應(yīng)用程序,容器允許你在資源隔離的進(jìn)程中運(yùn)行應(yīng)用程序,這篇文章主要介紹了Ubuntu20.04上安裝docker步驟及docker使用的相關(guān)資料,需要的朋友可以參考下
    2026-04-04
  • Docker如何將本地鏡像推送到私有庫

    Docker如何將本地鏡像推送到私有庫

    這篇文章主要介紹了Docker如何將本地鏡像推送到私有庫的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • docker安裝kong網(wǎng)關(guān)的方法示例

    docker安裝kong網(wǎng)關(guān)的方法示例

    這篇文章主要介紹了docker安裝kong網(wǎng)關(guān)的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • Dockerfile的CMD指令用法

    Dockerfile的CMD指令用法

    這篇文章主要介紹了Dockerfile的CMD指令用法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • docker bashrc文件的合理配置方案詳解

    docker bashrc文件的合理配置方案詳解

    本文給大家詳細(xì)介紹docker bashrc文件的合理配置方案詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-10-10
  • Docker從零構(gòu)建php-nginx-alpine鏡像的方法

    Docker從零構(gòu)建php-nginx-alpine鏡像的方法

    這篇文章主要介紹了Docker從零構(gòu)建php-nginx-alpine鏡像的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • 解決docker push報(bào)錯(cuò)denied問題

    解決docker push報(bào)錯(cuò)denied問題

    Docker Push權(quán)限錯(cuò)誤需先登錄私有倉庫,創(chuàng)建項(xiàng)目并打指定tag,若推送到Docker Hub個(gè)人倉庫,確保登錄信息正確,權(quán)限匹配即可完成推送
    2025-08-08
  • 使用Docker compose編排Laravel應(yīng)用的方法

    使用Docker compose編排Laravel應(yīng)用的方法

    本篇文章主要介紹了使用Docker compose編排Laravel應(yīng)用的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 部署維護(hù)docker環(huán)境的詳細(xì)教程

    部署維護(hù)docker環(huán)境的詳細(xì)教程

    這篇文章主要介紹了部署維護(hù)docker環(huán)境的詳細(xì)教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02

最新評論

雷州市| 米泉市| 炉霍县| 汕尾市| 遂宁市| 拉孜县| 会同县| 淄博市| 湘阴县| 明水县| 赤峰市| 千阳县| 桂东县| 包头市| 东方市| 泗阳县| 佛坪县| 淮北市| 桑日县| 镶黄旗| 名山县| 屯门区| 望城县| 台中市| 哈尔滨市| 墨脱县| 博野县| 鄄城县| 高邑县| 万源市| 饶阳县| 沂源县| 罗平县| 深水埗区| 吉安市| 柯坪县| 怀来县| 邮箱| 盐源县| 北碚区| 六盘水市|