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

Docker概述與安裝方法

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

一、 Docker概述

Docker簡介

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

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

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

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

名詞解釋

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

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

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

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

docker官網: https://www.docker.com
docker中文庫: https://www.docker.org.cn/

Docker版本演化與技術特征更新

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

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

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

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

2. 成長期(2015-2016)

  • 引入Swarm集群管理
  • 建立開放容器倡議(OCI)標準

3. 成熟期(2017-2019)

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

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

  • 深度集成Kubernetes
  • 專注于開發(fā)者體驗和安全增強

2、重大版本技術特征更新

Docker 1.0 (2014年6月)

  • 核心技術:從LXC轉向libcontainer
  • 鏡像格式:建立分層存儲體系
  • 網絡模型:基礎橋接網絡支持

Docker 1.12 (2016年7月)

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

Docker 17.03 (2017年3月)

  • 版本改革:采用YY.MM版本號
  • 多架構支持:ARM平臺正式支持
  • 插件系統(tǒng):卷和網絡插件標準化

Docker 18.09 (2018年11月)

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

Docker 19.03 (2019年7月)

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

Docker 20.10 (2020年12月)

  • BuildKit默認:取代經典構建引擎
  • Compose V2:重寫為Go版本
  • 檢查點/恢復:實驗性容器狀態(tài)保存

Docker 23.0 (2023年1月)

  • 構建革新:完全移除經典構建引擎
  • 鏡像管理:改進垃圾回收機制
  • 安全掃描:內置漏洞掃描工具

3、關鍵技術演進路線

1. 容器運行時演進

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

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

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

3. 網絡模型發(fā)展

  • 基礎橋接網絡 → overlay網絡
  • Macvlan/IPvlan支持
  • 服務網格集成能力

4. 存儲驅動優(yōu)化

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

5. 安全增強路徑

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

4、當前技術趨勢

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

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

相同點:docker容器技術和虛擬機技術,都是虛擬化技術。

不同點

虛擬機技術:

docker容器技術:

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

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

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

Docker局限性

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

Docker通常用于如下場景

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

二、 Docker 架構

Docker 包括三個基本概念

  • 鏡像(Image):Docker 鏡像(Image),就相當于是一個 root 文件系統(tǒng)。比如官方鏡像 ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統(tǒng)的 root 文件系統(tǒng)。
  • 容器(Container):鏡像(Image)和容器(Container)的關系,就像是面向對象程序設計中的類和實例一樣,鏡像是靜態(tài)的定義,容器是鏡像運行時的實體。容器可以被創(chuàng)建、啟動、停止、刪除、暫停等。
  • 倉庫(Repository):倉庫可看成一個代碼控制中心,用來保存鏡像。

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

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

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

三、 Docker安裝

1、使用官方安裝腳本自動安裝

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

2、手動安裝

#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、啟動 Docker

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

4、卸載 Docker

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

四、 Docker 鏡像加速

國內從 DockerHub 拉取鏡像有時會遇到困難,此時可以配置鏡像加速器。Docker 官方和國內很多云服務商都提供了國內加速器服務,

##編輯配置文件
[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
?
##重新啟動服務
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker

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

核心配置字段

  • data-root
    • 指定 Docker 數據存儲路徑(替代舊的 graph 選項)
    • 示例:"/mnt/docker-data"
  • exec-opts
    • 運行時選項(如 cgroup 驅動)
    • 示例:["native.cgroupdriver=systemd"]
  • log-driver
    • 默認容器日志驅動(如 json-file, syslog, journald
    • 示例:"json-file"
  • log-opts
    • 日志驅動的配置選項
    • 示例:{"max-size": "10m", "max-file": "3"}

網絡配置

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

安全配置

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

鏡像與存儲

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

性能與資源

  • max-concurrent-downloads
    • 鏡像下載并發(fā)數(默認 3
  • live-restore
    • 守護進程崩潰時保持容器運行(true/false

實驗性功能

  • features
    • 啟用實驗性功能
  • 示例:{"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
  }
}

注意事項

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

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

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

相關文章

  • Docker鏡像保存為文件及從文件導入鏡像的方法

    Docker鏡像保存為文件及從文件導入鏡像的方法

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

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

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

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

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

    docker安裝kong網關的方法示例

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

    Dockerfile的CMD指令用法

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

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

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

    Docker從零構建php-nginx-alpine鏡像的方法

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

    解決docker push報錯denied問題

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

    使用Docker compose編排Laravel應用的方法

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

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

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

最新評論

闽侯县| 合肥市| 滦平县| 丰都县| 新民市| 博客| 财经| 龙南县| 米泉市| 盐山县| 进贤县| 云和县| 扶风县| 曲松县| 易门县| 江北区| 股票| 济阳县| 张家界市| 新巴尔虎左旗| 同德县| 沂水县| 临西县| 翁源县| 连城县| 大荔县| 昌黎县| 株洲县| 万宁市| 宣汉县| 深水埗区| 瓮安县| 金昌市| 炎陵县| 区。| 青田县| 仁化县| 兴城市| 宣武区| 长沙市| 安远县|