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

容器和云原生(二):Docker容器化技術

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

?

目錄

Docker容器的使用

Docker容器關鍵技術

Namespace?

Cgroups

UnionFS


Docker容器的使用

? ? ? ? 首先直觀地了解docker如何安裝使用,并快速啟動mysql服務的,啟動時候綁定主機上的3306端口,查找mysql容器的ip,使用mysql -h containerIP 或者127.0.0.1就可以直接訪問mysql服務,暫不考慮mysql的存儲卷。

# 安裝docker的rpm包
yum install -y docker
# 啟動docker服務
systemctl start docker
# 查看image鏡像列表,現(xiàn)在沒有pull拉取任何鏡像,列表為空
docker image list
# 修改鏡像源地址為國內(nèi)
vi /etc/docker/daemon.json
{
    "registry-mirrors" : [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com"]
}
# 拉取mysql的固定版本鏡像mysql:5.7.29
docker image pull mysql:5.7.29
# 查看鏡像信息
docker inspect mysql:5.7.29
# 把mysql的鏡像run跑起來,--name指定容器名,-p綁定端口映射關系,這里主機和容器的3306綁定,-e環(huán)境變量,-d是后臺運行
docker run mysql:5.7.29 --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=admin@123 -d 
# 查看docker的容器進程
docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
39189fab8ca8        mysql:5.7.29        "docker-entrypoint..."   44 minutes ago      Up 5 seconds        0.0.0.0:3306->3306/tcp, 33060/tcp   mysql
# 查看 mysql的容器ip,知道它的ip是172.17.0.2
docker inspect 39189fab8ca8
# centos系統(tǒng)本地安裝mysql客戶端
yum install -y mysql
# 在centos中使用docker的ip或者直接主機ip+3306端口訪問mysql服務,密碼是上面的admin@123
mysql -h 172.17.0.2 -P 3306 -u root -p
mysql -h 127.0.0.1 -P 3306 -u root -p
# 允許mysql的遠程訪問
MySQL [(none)]> grant all privileges on *.* to 'root'@'%' identified by 'admin@123' with grant option;
Query OK, 0 rows affected, 1 warning (0.00 sec)
MySQL [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

Docker容器關鍵技術

????????Docker基于 Linux 內(nèi)核的 Cgroup,Namespace,以及Union FS 等技術對進程進行封裝隔離封裝,屬 于操作系統(tǒng)層面的虛擬化技術,由于隔離的進程獨立于宿主和其它的隔離的進程,因此也稱其為容器,與虛擬化技術相比它有更快的啟動時間,更高效的資源利用率,一致的運行環(huán)境,更輕松的遷移能和更強的維護性。

容器和云原生(二):Docker容器化技術,# 容器和云原生,云原生,docker,容器

?容器和云原生(二):Docker容器化技術,# 容器和云原生,云原生,docker,容器

Namespace?

????????Docker 利用 Linux 內(nèi)核的 namespace 技術來實現(xiàn)容器化。Namespace 是一種隔離機制,它將系統(tǒng)資源封裝在一個獨立的命名空間中,使得在不同的命名空間中的進程看起來像在獨立的操作系統(tǒng)實例中運行,Linux 內(nèi)核代碼中進程的數(shù)據(jù)結構和Namespace 的數(shù)據(jù)結構:

容器和云原生(二):Docker容器化技術,# 容器和云原生,云原生,docker,容器容器和云原生(二):Docker容器化技術,# 容器和云原生,云原生,docker,容器

namespace的類型有多種:

PID Namespace:每個容器都有自己獨立的進程 ID (PID) 命名空間。這意味著容器內(nèi)部的進程在容器外部是不可見的,進程 ID 在容器之間是隔離的。這使得容器內(nèi)的進程可以擁有自己的進程樹。

Network Namespace:每個容器都有自己獨立的網(wǎng)絡命名空間。這意味著每個容器擁有自己的網(wǎng)絡棧,包括獨立的網(wǎng)絡接口、IP 地址、路由表和防火墻規(guī)則。這使得容器之間網(wǎng)絡隔離,可以獨立地運行和與外部網(wǎng)絡通信。

Mount Namespace:每個容器都有自己獨立的文件系統(tǒng)視圖。這意味著每個容器可以擁有自己的文件系統(tǒng)掛載點和文件樹。容器內(nèi)部對文件系統(tǒng)的修改不會影響到宿主機或其他容器。

UTS Namespace:每個容器都有自己獨立的主機名和域名。這意味著容器可以擁有自己的主機名,并且可以在網(wǎng)絡中被識別為一個獨立的實體。

IPC Namespace:每個容器都有自己獨立的進程間通信 (IPC) 命名空間。這意味著容器之間的進程無法直接進行 IPC,它們被隔離在不同的命名空間中。

容器和云原生(二):Docker容器化技術,# 容器和云原生,云原生,docker,容器

Cgroups

?Docker 使用 cgroups(Control Groups)技術來實現(xiàn)對容器資源的限制和管理。cgroups 是 Linux 內(nèi)核中將一組進程組織在多個層次結構中,并為每個組提供資源隔離/優(yōu)先級和控制的技術;

CPU 資源管理:Docker 使用 cgroups 將 CPU 資源劃分為不同的組,并為每個組分配 CPU 時間片。這允許 Docker 控制容器可以使用的 CPU 資源的數(shù)量,并根據(jù)需要進行動態(tài)調(diào)整。

內(nèi)存資源管理:通過 cgroups,Docker 可以為容器分配特定的內(nèi)存限制。當容器超出分配的內(nèi)存限制時,內(nèi)核會觸發(fā) OOM(Out of Memory)機制來處理內(nèi)存不足的情況。

網(wǎng)絡帶寬管理:Docker 使用 cgroups 的網(wǎng)絡子系統(tǒng)來限制容器的網(wǎng)絡帶寬。這使得 Docker 可以控制容器可以使用的網(wǎng)絡帶寬,以防止某個容器占用過多的網(wǎng)絡資源。

塊設備 I/O 控制:通過 cgroups,Docker 可以對容器的塊設備 I/O 進行限制和控制。這允許 Docker 控制容器對磁盤讀寫的速度,以避免某個容器對存儲設備的過度使用。

容器和云原生(二):Docker容器化技術,# 容器和云原生,云原生,docker,容器

UnionFS

Docker 使用 UnionFS(Union File System)技術來實現(xiàn)容器鏡像的分層和聯(lián)合掛載,它提供了靈活而高效的容器鏡像管理和文件系統(tǒng)隔離功能,能構建、分發(fā)和運行容器鏡像,同時節(jié)省存儲空間,并提供了高度的可定制性和可擴展性。

分層鏡像:Docker 使用分層鏡像的概念來構建容器。每個鏡像層都只包含對文件系統(tǒng)的增量修改,這樣可以節(jié)省存儲空間并提高鏡像的構建效率。每個鏡像層都可以看作是一個只讀的文件系統(tǒng),它們通過 UnionFS 技術聯(lián)合掛載在一起,形成一個完整的容器鏡像。

寫時復制(Copy-on-write):當容器啟動時,Docker 會為每個容器創(chuàng)建一個可寫的容器層。這個可寫層是基于鏡像層的一個副本,當容器對文件系統(tǒng)進行修改時,UnionFS 使用寫時復制技術將修改后的文件存儲在可寫層中,而不是原始鏡像層中。這樣可以避免對原始鏡像層的修改,使得容器之間可以共享相同的鏡像層。

聯(lián)合掛載:通過 UnionFS 技術,Docker 將不同的鏡像層聯(lián)合掛載到容器的文件系統(tǒng)中,形成一個統(tǒng)一的文件系統(tǒng)視圖。這使得容器可以訪問并使用鏡像層中的文件和目錄,就像它們是在容器內(nèi)部的文件一樣。聯(lián)合掛載還允許容器在運行時共享文件和目錄,提高了容器之間的效率和資源利用率。

容器和云原生(二):Docker容器化技術,# 容器和云原生,云原生,docker,容器

linux系統(tǒng)啟動后,首先將 rootfs 設置為 readonly, 進行一系列檢查, 然后將其切換為 “readwrite” 供用戶使用,而docker容器啟動時也是將 rootfs 以 readonly 方式加載并檢查,然而接下來利用union mount 的方式 將一個 readwrite 文件系統(tǒng)掛載在 readonly 的 rootfs 之上,?并且允許再次將下層的 FS(file system) 設定為 readonly 并且向上疊加,這樣一組 readonly 和一個 writeable 的結構構成一個 container 的運行時態(tài), 每一個 FS 被稱作一個 FS 層。文章來源地址http://www.zghlxwxcb.cn/news/detail-654310.html

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

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

領支付寶紅包贊助服務器費用

相關文章

  • 容器和云原生(三):kubernetes搭建與使用

    容器和云原生(三):kubernetes搭建與使用

    ? ? ? ? 目錄 單機K8S docker containerd image依賴 kubeadm初始化 驗證 crictl工具 K8S核心組件 上文安裝單機docker是很簡單docker,但是生產(chǎn)環(huán)境需要多個主機,主機上啟動多個docker容器,相同容器會綁定形成1個服務service,微服務場景中多個service會互相調(diào)用,那么就需要保證多個servi

    2024年02月11日
    瀏覽(28)
  • 『 云原生·Docker』Docker容器相關操作(二)

    本系列主要分為以下六大部分,正在更新中,盡請期待! 『 云原生·生之門』 『 云原生·前置知識』 『 云原生·Docker』 『 云原生·Kubernetes』 『 云原生·KubeSphere』 『 云原生·DevOps』 ??點擊關注本專欄 提示:已經(jīng)更新的或正在更新的文章前面打勾了哈! 容器是 Docker的另一個

    2024年02月06日
    瀏覽(23)
  • 【云原生丶Docker】Docker容器常用命令大全

    【云原生丶Docker】Docker容器常用命令大全

    在 Docker 核心概念理解 一文中,我們知道 Docker容器 其實就是一個輕量級的沙盒,應用運行在不同的容器中從而實現(xiàn)隔離效果。容器的創(chuàng)建和運行是以鏡像為基礎的,容器可以被創(chuàng)建、銷毀、啟動和停止等。本文將介紹下容器的這些常用操作命令。 docker run 命令表示新建并運

    2024年02月04日
    瀏覽(22)
  • 云原生Docker容器管理

    目錄 docker容器的管理 容器創(chuàng)建 ?查看容器的運行狀態(tài) 啟動容器 創(chuàng)建并啟動容器? 終止容器運行 ?刪除容器 ?容器的進入 ?查看容器詳細信息 復制到容器中 從容器復制文件到主機 容器的導出與導入 導出 ?導入 相當于一個進程,性能接近于原生,幾乎沒有損耗; docker容器在

    2024年02月07日
    瀏覽(22)
  • 【云原生-Docker】docker容器自定義DNS解析

    【云原生-Docker】docker容器自定義DNS解析

    在特定的情況下,或者在網(wǎng)絡策略特殊定義下,需要自定義dns進行域名訪問,在宿主機上配置了域名解析,對于docker容器無效。 對于局域網(wǎng)內(nèi)的域名解析,Docker 需要到 Docker 容器中配置 hosts 文件 。 docker-compose配置【推薦】 通過增加 extra_hosts 屬性 進行host配置 進入容器內(nèi)部

    2024年02月03日
    瀏覽(31)
  • 【云原生 ? Docker】docker 環(huán)境搭建、docker 與容器常用指令大全

    【云原生 ? Docker】docker 環(huán)境搭建、docker 與容器常用指令大全

    目錄 一、Docker 環(huán)境搭建 1. 準備工作(已有 Linux 環(huán)境可省略) 2. 安裝 Docker 3. 設置 ustc 鏡像 二、Docker/容器操作命令匯總 1. Docker 操作命令 2. 鏡像相關命令 3. 查看容器 4. 創(chuàng)建容器 5. 停止與啟動容器 6. 文件掛載 7. 目錄掛載 8. 查看容器 IP 地址 9. 刪除容器 1. 準備工作(已有

    2024年01月16日
    瀏覽(55)
  • 云原生——Docker容器化實戰(zhàn)

    云原生——Docker容器化實戰(zhàn)

    ??作者介紹:奇妙的大歪?? ??個人名言:但行前路,不負韶華!?? ?? 個人簡介:云計算網(wǎng)絡運維專業(yè)人員 ?? 前言 ? ? ? ?\\\"Docker\\\"一詞指代了多個概念,包括開源社區(qū)項目、開源項目使用的工具、主導支持此類項目的公司 Docker Inc.,以及該公司官方支持的工具。這些

    2024年02月11日
    瀏覽(22)
  • 云原生個人線路 Docker容器化

    云原生個人線路 Docker容器化

    聲明:此文章為博主個人學習記錄,僅供學習和交流,如有侵權請聯(lián)系博主。 基于Linux 內(nèi)核的Cgroup,Namespace,以及Union FS等技術,對進程進行封裝隔離,屬于操作系統(tǒng)層面的虛擬化技術,由于隔離的進程獨立于宿主和其它的隔離的進程,因此也稱其為容器。 最初實現(xiàn)是基于

    2023年04月26日
    瀏覽(22)
  • Docker容器原生健康檢查機制詳解

    健康檢查機制是用來檢查服務的可用性,當服務不可用時及時重啟以恢復可用性。之前的文章《Kubernetes中配置livenessProbe、readinessProbe和startupProbe》講解了Kubernetes中的各種健康檢查類型和配置方法,本篇文章講解一下docker容器的健康檢查機制。 看過上文提到的那篇文章的同學

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

    【云原生|Docker系列第4篇】Docker的容器的入門實踐

    歡迎來到云原生系列的第4篇博客!在前面的兩篇博客中,我們已經(jīng)學習了Docker鏡像的基本概念和入門實踐。本篇博客將帶您深入了解Docker容器,探索如何使用Docker容器來構建、運行和管理應用程序。無論您是新手還是有一定經(jīng)驗的開發(fā)者,通過本篇博客的實踐指導,您將能夠

    2024年02月17日
    瀏覽(21)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包