欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker Compose 與 Harbor 私有倉庫詳解

 更新時(shí)間:2025年06月28日 10:25:43   作者:FENG  
本文將探討Docker Compose多容器編排工具與Harbor企業(yè)級(jí)私有倉庫的核心技術(shù),幫助讀者掌握從容器管理到鏡像安全存儲(chǔ)的完整解決方案,感興趣的朋友一起看看吧

簡(jiǎn)介

在當(dāng)今云計(jì)算與容器化技術(shù)飛速發(fā)展的時(shí)代,Docker 作為容器化領(lǐng)域的領(lǐng)軍技術(shù),已成為開發(fā)與運(yùn)維團(tuán)隊(duì)不可或缺的工具。本文將探討 Docker Compose 多容器編排工具與 Harbor 企業(yè)級(jí)私有倉庫的核心技術(shù),幫助讀者掌握從容器管理到鏡像安全存儲(chǔ)的完整解決方案。

一、Docker 容器重啟策略與狀態(tài)碼解析

(一)Docker 容器重啟策略詳解

Docker 容器的重啟策略是面向生產(chǎn)環(huán)境的重要機(jī)制,由 Docker 守護(hù)進(jìn)程控制,在開發(fā)過程中可忽略,但在生產(chǎn)部署中至關(guān)重要。常見的重啟策略包括:

  • no(默認(rèn)策略):容器退出時(shí)不進(jìn)行重啟,適用于開發(fā)測(cè)試場(chǎng)景。
  • on-failure:僅在容器非正常退出(退出狀態(tài)碼非 0)時(shí)重啟,是生產(chǎn)環(huán)境中常用的策略之一。
  • on-failure:3:在 on-failure 基礎(chǔ)上,限制最多重啟 3 次,避免容器反復(fù)重啟消耗系統(tǒng)資源。
  • always:無論容器以何種狀態(tài)退出,都會(huì)立即重啟,確保服務(wù)持續(xù)運(yùn)行。
  • unless-stopped:與 always 類似,但 Docker 守護(hù)進(jìn)程啟動(dòng)時(shí)已停止的容器不會(huì)重啟。

示例命令

# 啟動(dòng)一個(gè)始終重啟的容器
docker run -itd --restart=always --name host1 busybox sh

該命令通過 ??--restart=always?? 參數(shù)指定容器退出時(shí)始終重啟,確保 host1 容器保持運(yùn)行狀態(tài)。

(二)Docker 容器常見退出狀態(tài)碼

通過容器退出狀態(tài)碼可快速判斷容器運(yùn)行情況:

狀態(tài)碼

說明

0

容器正常退出,表明容器內(nèi)的進(jìn)程成功執(zhí)行完畢。

125

Docker 守護(hù)進(jìn)程本身出現(xiàn)錯(cuò)誤,需檢查 Docker 服務(wù)狀態(tài)。

126

容器啟動(dòng)后要執(zhí)行的默認(rèn)命令無法調(diào)用,可能是命令權(quán)限問題或路徑錯(cuò)誤。

127

容器啟動(dòng)后要執(zhí)行的默認(rèn)命令不存在,需確認(rèn)命令名稱是否正確。

其他

容器內(nèi)正常執(zhí)行的命令返回的狀態(tài)碼,需根據(jù)具體命令邏輯分析。

二、Docker Compose 工具深度應(yīng)用

(一)Docker Compose 簡(jiǎn)介與安裝

Docker Compose 的前身是 Fig,是定義和運(yùn)行多個(gè) Docker 容器的強(qiáng)大工具。通過一個(gè)配置文件即可定義多個(gè)容器,并使用一條命令啟動(dòng),極大簡(jiǎn)化了多容器應(yīng)用的部署。

安裝步驟

  1. 使用 curl 下載對(duì)應(yīng)版本的 Docker Compose:
curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

該命令從 GitHub 下載指定版本的 Docker Compose 二進(jìn)制文件并保存到 ??/usr/local/bin?? 目錄。

  1. 添加執(zhí)行權(quán)限并創(chuàng)建軟鏈接:
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

??chmod +x??? 賦予文件執(zhí)行權(quán)限,??ln -s??? 創(chuàng)建軟鏈接以便在任何目錄都能執(zhí)行 ??docker-compose?? 命令。

  1. 驗(yàn)證安裝:
docker-compose --version

輸出版本信息則表示安裝成功。

(二)YAML 文件格式與編寫規(guī)范

Docker Compose 使用 YAML 格式的配置文件,YAML 是一種可讀性高的標(biāo)記語言,語法比 XML 簡(jiǎn)單。編寫時(shí)需注意:

  • 不支持制表符(tab)縮進(jìn),必須使用空格。
  • 通常開頭縮進(jìn)兩個(gè)空格,保持格式統(tǒng)一。
  • 冒號(hào)、逗號(hào)、橫桿等字符后需縮進(jìn)一個(gè)空格。
  • 使用 ??#?? 號(hào)添加注釋。
  • 包含特殊字符時(shí)用單引號(hào)括起來,布爾值也需用引號(hào)括起-。

(三)Docker Compose 基本操作命令

1. 容器運(yùn)行

  • 前臺(tái)運(yùn)行:??docker-compose up??,將容器日志輸出到前臺(tái),按 Ctrl+C 停止。
  • 后臺(tái)運(yùn)行:??docker-compose up -d??,容器在后臺(tái)運(yùn)行,是生產(chǎn)環(huán)境的常用方式。
  • 重新構(gòu)建運(yùn)行:??docker-compose up --build -d??,在啟動(dòng)前重新構(gòu)建鏡像。

2. 容器控制

  • 關(guān)閉指定容器:??docker-compose stop <容器名稱>???,如 ??docker-compose stop nginx?? 停止名為 nginx 的容器-。
  • 全部關(guān)閉:??docker-compose stop??,停止所有由 Compose 管理的容器。
  • 啟動(dòng)指定容器:??docker-compose start <容器名稱>??,啟動(dòng)已停止的指定容器-。
  • 全部啟動(dòng):??docker-compose start??,啟動(dòng)所有已停止的容器。
  • 重啟指定容器:??docker-compose restart <容器名稱>??,重啟指定容器-。
  • 全部重啟:??docker-compose restart??,重啟所有容器。

3. 容器刪除

??docker-compose down?? 命令用于停止并刪除容器、網(wǎng)絡(luò)等資源,是清理環(huán)境的常用命令。

(四)Docker Compose 案例演示

以部署 Nginx 服務(wù)為例,演示 Compose 的實(shí)際應(yīng)用:

1. 編寫 docker-compose.yaml 文件

version: '2'
services:
  webapp:
    image: 'nginx'
    ports:
      - "80:80"
    volumes:
      - "/www/html:/www/html:rw"
      - "/opt/nginx/nginx.conf:/etc/nginx/nginx.conf"
  • ??version?? 指定 Compose 文件格式版本。
  • ??services.webapp?? 定義名為 webapp 的服務(wù)。
  • ??image?? 指定使用 nginx 鏡像。
  • ??ports?? 將容器的 80 端口映射到主機(jī)的 80 端口。
  • ??volumes??? 設(shè)置卷掛載,實(shí)現(xiàn)數(shù)據(jù)持久化和配置自定義,??/www/html:/www/html:rw?? 表示讀寫權(quán)限掛載。

2. 配置 Nginx

創(chuàng)建 nginx 配置文件并上傳到 Docker 主機(jī):

mkdir /opt/nginx
vim /opt/nginx/nginx.conf

在配置文件中設(shè)置工作進(jìn)程數(shù)、事件連接數(shù)、HTTP 服務(wù)等參數(shù),如:

worker_processes 1;
events {
    worker_connections 1024;
}
http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;
    server {
        listen 80;
        server_name localhost;
        location / {
            root /www/html;
            index index.html index.htm index.php;
        }
        # 其他配置...
    }
}

該配置定義了一個(gè)基本的 Nginx 服務(wù),監(jiān)聽 80 端口,根目錄為 ??/www/html??-。

3. 執(zhí)行部署

docker-compose up -d

該命令在后臺(tái)啟動(dòng) Nginx 容器,根據(jù)配置文件完成服務(wù)部署。

4. 查看容器狀態(tài)

docker-compose ps

命令列出當(dāng)前運(yùn)行的容器及其狀態(tài),確認(rèn) Nginx 服務(wù)是否正常啟動(dòng)。

三、Harbor 企業(yè)級(jí)私有倉庫搭建與管理

(一)Harbor 基礎(chǔ)概念

1. Harbor 簡(jiǎn)介

Harbor 是 VMware 開源的企業(yè)級(jí) Docker Registry 項(xiàng)目,基于 Docker 開源的 Registry 構(gòu)建,添加了管理 UI、基于角色的訪問控制、LDAP/AD 集成、審計(jì)日志等企業(yè)級(jí)功能。作為私有倉庫,Harbor 提供了更好的性能和安全性,提升了鏡像傳輸和管理效率。

2. Harbor 的核心優(yōu)勢(shì)

  • 基于角色的訪問控制:用戶和倉庫按項(xiàng)目組織,不同用戶在項(xiàng)目中擁有不同權(quán)限。
  • 鏡像復(fù)制策略:支持在多實(shí)例間復(fù)制(同步)鏡像,適用于負(fù)載平衡、高可用性等復(fù)雜場(chǎng)景。
  • LDAP/AD 集成:與企業(yè)現(xiàn)有的 LDAP/AD 系統(tǒng)集成,實(shí)現(xiàn)統(tǒng)一的用戶認(rèn)證和管理。
  • 鏡像管理功能:支持刪除鏡像和垃圾回收,釋放存儲(chǔ)空間。
  • 圖形化界面:提供直觀的 UI,方便用戶瀏覽、搜索鏡像和管理項(xiàng)目。
  • 審計(jì)與 API:記錄所有操作日志,提供 RESTful API 便于與外部系統(tǒng)集成-。

3. Harbor 架構(gòu)組成

Harbor 主要由以下組件構(gòu)成:

  • Proxy:前置反向代理,統(tǒng)一接收瀏覽器和 Docker 客戶端的請(qǐng)求并轉(zhuǎn)發(fā)到后端服務(wù)。
  • Registry:存儲(chǔ) Docker 鏡像,處理 push/pull 命令,通過 Token 服務(wù)實(shí)現(xiàn)訪問控制-。
  • Core services:核心服務(wù),包括 UI(圖形界面)、Webhook(獲取鏡像狀態(tài)變化)和 Token 服務(wù)(簽發(fā)訪問令牌)-。
  • Database (Harbor-db):存儲(chǔ)用戶權(quán)限、審計(jì)日志、鏡像分組等數(shù)據(jù)。
  • Log collector (Harbor-log):收集各組件日志,用于監(jiān)控和分析。

(二)Harbor 部署實(shí)戰(zhàn)

1. 環(huán)境準(zhǔn)備

操作系統(tǒng)

主機(jī)名

配置

IP

CentOS 7.9 2009

harbor

2C4G

192.168.10.106

CentOS 7.9 2009

client

2C4G

192.168.10.101

2. 基礎(chǔ)環(huán)境設(shè)置(兩臺(tái)主機(jī)均需操作)

  • 關(guān)閉防火墻
systemctl stop firewalld
systemctl disable firewalld

停止并禁用防火墻,確保網(wǎng)絡(luò)通信正常。

  • 關(guān)閉 selinux
setenforce 0
sed -i "s/.*SELINUX=.*$/SELINUX=disabled/g" /etc/selinux/config

臨時(shí)和永久關(guān)閉 selinux,避免其對(duì) Docker 操作產(chǎn)生干擾。

3. 下載與安裝

  • 下載安裝包:從 GitHub 下載 Harbor 離線安裝包,如 v2.4.3 版本:
wget https://github.com/goharbor/harbor/releases/download/v2.4.3/harbor-offline-installer-v2.4.3.tgz

  • 解壓安裝包
tar -zxvf harbor-offline-installer-v2.4.3.tgz

解壓后得到 harbor 目錄,包含安裝腳本和配置文件模板-。

4. 配置 Harbor

  • 復(fù)制配置文件模板
cp harbor.yml.tmpl harbor.yml

創(chuàng)建默認(rèn)配置文件。

  • 編輯配置文件
vim harbor.yml

修改以下關(guān)鍵配置:

hostname: 192.168.10.106  # 設(shè)置為當(dāng)前主機(jī) IP
harbor_admin_password: Harbor12345  # 管理員密碼
# 注釋掉 https 相關(guān)配置,使用 http 訪問

??hostname??? 配置為 Harbor 服務(wù)器的 IP 地址,??harbor_admin_password?? 設(shè)置管理員登錄密碼-。

5. 執(zhí)行安裝

./install.sh

安裝腳本會(huì)檢查 Docker 和 Docker Compose 版本,加載 Harbor 鏡像,并啟動(dòng)各組件容器。成功安裝后會(huì)顯示 "Harbor has been installed and started successfully"。

6. 訪問與驗(yàn)證

在瀏覽器中輸入 ??http://192.168.10.106???,使用默認(rèn)用戶名 ??admin??? 和配置的密碼 ??Harbor12345??? 登錄。登錄后可創(chuàng)建項(xiàng)目和用戶,如創(chuàng)建名為 ??kubernetes??? 的項(xiàng)目和 ??zhangsan?? 用戶-。

(三)Harbor 客戶端應(yīng)用

1. 配置 Docker 信任私有倉庫

在所有 Docker 主機(jī)上添加以下配置到 ??/etc/docker/daemon.json??:

{
  "insecure-registries": ["192.168.10.106"]
}

該配置告知 Docker 信任指定的私有倉庫,避免因證書問題導(dǎo)致操作失敗。

重啟 Docker 服務(wù)使配置生效:

systemctl daemon-reload
systemctl restart docker

。

2. 登錄 Harbor 倉庫

docker login 192.168.10.106 -u zhangsan -p Aptech1!

使用創(chuàng)建的用戶賬號(hào)登錄 Harbor 倉庫,??-u??? 指定用戶名,??-p?? 指定密碼。

3. 推送鏡像到 Harbor

# 拉取一個(gè)示例鏡像
docker pull cirros
# 為鏡像打標(biāo)簽,格式為 [倉庫地址]/[項(xiàng)目名]/[鏡像名]:[版本]
docker tag cirros 192.168.10.106/kubernetes/cirros:v1
# 推送鏡像到 Harbor
docker push 192.168.10.106/kubernetes/cirros:v1

??docker tag??? 命令為鏡像添加 Harbor 倉庫的標(biāo)簽,??docker push?? 命令將鏡像推送到指定倉庫和項(xiàng)目-。

4. 從 Harbor 拉取鏡像

在另一臺(tái)主機(jī)上重復(fù)配置步驟后,使用以下命令拉取鏡像:

docker pull 192.168.10.106/kubernetes/cirros:v1

驗(yàn)證鏡像是否能從 Harbor 成功拉取。

5. 退出 Harbor 登錄

docker logout 192.168.10.106

退出當(dāng)前 Harbor 倉庫登錄。

四、總結(jié)

本文全面介紹了 Docker Compose 與 Harbor 私有倉庫的核心技術(shù)與實(shí)踐操作。Docker Compose 通過 YAML 配置文件和簡(jiǎn)單命令,實(shí)現(xiàn)了多容器應(yīng)用的高效編排與管理,極大提升了開發(fā)和部署效率。Harbor 作為企業(yè)級(jí)私有倉庫,提供了安全、可控的鏡像管理解決方案,滿足了企業(yè)在鏡像存儲(chǔ)、傳輸和權(quán)限控制等方面的需求。

通過掌握這些技術(shù),開發(fā)與運(yùn)維團(tuán)隊(duì)能夠構(gòu)建更加靈活、可靠的容器化應(yīng)用架構(gòu),為現(xiàn)代化軟件開發(fā)與部署奠定堅(jiān)實(shí)基礎(chǔ)。在實(shí)際應(yīng)用中,可根據(jù)企業(yè)具體需求,進(jìn)一步優(yōu)化 Docker Compose 配置和 Harbor 安全策略,確保容器化環(huán)境的穩(wěn)定運(yùn)行與高效管理。

到此這篇關(guān)于Docker Compose 與 Harbor 私有倉庫詳解的文章就介紹到這了,更多相關(guān)Docker Compose 私有倉庫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • docker容器啟動(dòng)后添加端口映射

    docker容器啟動(dòng)后添加端口映射

    這篇文章主要介紹了docker容器啟動(dòng)后添加端口映射,,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • Docker容器的概念及Docker容器是干什么的

    Docker容器的概念及Docker容器是干什么的

    Docker容器是一種輕量級(jí)、可移植的虛擬化技術(shù),用于打包、運(yùn)輸和運(yùn)行應(yīng)用程序及其所有依賴項(xiàng),Docker容器使得開發(fā)人員能夠更輕松地構(gòu)建、交付和運(yùn)行應(yīng)用程序,同時(shí)提高了資源利用率和部署的一致性,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • docker-desktop啟動(dòng)k8s的詳細(xì)方法

    docker-desktop啟動(dòng)k8s的詳細(xì)方法

    這篇文章主要介紹了docker-desktop啟動(dòng)k8s,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 使用Docker-compose離線部署Django應(yīng)用的方法

    使用Docker-compose離線部署Django應(yīng)用的方法

    這篇文章主要介紹了使用Docker-compose離線部署Django應(yīng)用的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-03-03
  • Ubuntu 16.04安裝使用Docker教程

    Ubuntu 16.04安裝使用Docker教程

    本篇文章主要介紹了Ubuntu 16.04安裝使用Docker教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • 如何為Go程序創(chuàng)建一個(gè)最小的Docker Image詳解

    如何為Go程序創(chuàng)建一個(gè)最小的Docker Image詳解

    這篇文章主要給大家介紹了關(guān)于如何為Go程序創(chuàng)建一個(gè)最小的Docker Image的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • 微信小程序Docker+Nginx環(huán)境配置業(yè)務(wù)域名驗(yàn)證文件的操作方法

    微信小程序Docker+Nginx環(huán)境配置業(yè)務(wù)域名驗(yàn)證文件的操作方法

    本文介紹了如何在DockerCompose+Nginx環(huán)境下配置并訪問靜態(tài)驗(yàn)證文件,首先下載驗(yàn)證文件并將其掛載到容器中,然后修改Nginx配置文件使其能夠正確返回請(qǐng)求路徑下的靜態(tài)文件,最后,測(cè)試訪問驗(yàn)證文件并提交業(yè)務(wù)域名,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • docker-compose離線部署ollama+open-webui的實(shí)現(xiàn)步驟

    docker-compose離線部署ollama+open-webui的實(shí)現(xiàn)步驟

    本女王主要介紹了docker-compose離線部署ollama+open-webui的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • 云原生之docker命令詳解

    云原生之docker命令詳解

    Docker是一個(gè)開源的應(yīng)用容器引擎,基于Go語言并遵從Apache2.0協(xié)議開源,Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化,本文就給大家介紹了云原生中的docker命令
    2023-06-06
  • 基于Docker搭建Graylog分布式日志采集系統(tǒng)的詳細(xì)過程

    基于Docker搭建Graylog分布式日志采集系統(tǒng)的詳細(xì)過程

    Graylog是一個(gè)開源的日志管理工具,支持日志收集、解析、存儲(chǔ)、搜索和可視化,它可以從各種數(shù)據(jù)源收集日志,并通過內(nèi)置的解析器將日志格式化,本文介紹基于Docker搭建Graylog分布式日志采集系統(tǒng),感興趣的朋友一起看看吧
    2025-02-02

最新評(píng)論