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

Docker鏡像構(gòu)建_Docker?Compose編排實踐_Docker?Harbor倉庫的集成

 更新時間:2026年01月02日 09:31:24   作者:2501_93990905  
Docker作為容器化的核心平臺,通過鏡像封裝應(yīng)用及其依賴,確??绛h(huán)境的一致性,Docker?Compose?則進一步簡化多容器應(yīng)用的編排,通過聲明式配置實現(xiàn)服務(wù)的快速部署與協(xié)同,而?Docker?Harbor?作為企業(yè)級鏡像倉庫,提供了安全、高效的鏡像存儲與管理能力,支持團隊協(xié)作和持續(xù)集成

在現(xiàn)代化的軟件開發(fā)和部署流程中,容器化技術(shù)已成為提升效率、簡化環(huán)境管理的重要工具。Docker 作為容器化的核心平臺,通過鏡像封裝應(yīng)用及其依賴,確??绛h(huán)境的一致性。Docker Compose 則進一步簡化多容器應(yīng)用的編排,通過聲明式配置實現(xiàn)服務(wù)的快速部署與協(xié)同。而 Docker Harbor 作為企業(yè)級鏡像倉庫,提供了安全、高效的鏡像存儲與管理能力,支持團隊協(xié)作和持續(xù)集成。

本內(nèi)容旨在系統(tǒng)介紹 Docker 鏡像的構(gòu)建方法、Docker Compose 的編排實踐,以及 Harbor 倉庫的集成使用,幫助開發(fā)者掌握從開發(fā)到生產(chǎn)的完整容器化流程,提升 DevOps 實踐的成熟度。

Docker鏡像的創(chuàng)建

Docker 鏡像的創(chuàng)建通常通過編寫 Dockerfile 文件并執(zhí)行構(gòu)建命令完成。Dockerfile 是一個文本文件,包含一系列指令,用于定義鏡像的構(gòu)建步驟。

編寫一個簡單的 Dockerfile 示例:

FROM ubuntu:20.04
RUN apt-get update && apt-get install -y python3
COPY ./app /app
WORKDIR /app
CMD ["python3", "app.py"]
 

構(gòu)建鏡像的命令

使用 docker build 命令根據(jù) Dockerfile 構(gòu)建鏡像。通過 -t 參數(shù)指定鏡像名稱和標(biāo)簽:

docker build -t my-python-app:latest .
 

多階段構(gòu)建優(yōu)化鏡像大小

對于需要編譯或依賴復(fù)雜的環(huán)境,可以使用多階段構(gòu)建減少最終鏡像體積:

FROM golang:1.16 AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp .

FROM alpine:latest
COPY --from=builder /app/myapp /myapp
CMD ["/myapp"]
 

使用現(xiàn)有容器創(chuàng)建鏡像

通過 docker commit 可以將運行中的容器保存為新鏡像。適用于調(diào)試或臨時修改后的保存:

docker commit <container-id> my-new-image
 

導(dǎo)入導(dǎo)出鏡像文件

鏡像可以保存為 .tar 文件便于遷移或分享:

docker save -o my-image.tar my-image:tag
docker load -i my-image.tar
 

鏡像構(gòu)建的最佳實踐

保持鏡像精簡,選擇合適的基礎(chǔ)鏡像(如 Alpine Linux)。合并多個 RUN 指令減少鏡像層數(shù)。使用 .dockerignore 文件排除不必要的文件。定期清理無用鏡像釋放空間:

docker image prune -a
 

Dockerfile 操作常用指令

FROM
指定基礎(chǔ)鏡像,所有Dockerfile必須以該指令開頭。例如:

FROM ubuntu:20.04
 

RUN
執(zhí)行命令并創(chuàng)建新的鏡像層,常用于安裝軟件包:

RUN apt-get update && apt-get install -y curl
 

COPY vs ADD
兩者均用于復(fù)制文件,但COPY更透明:

COPY ./app /usr/src/app
 

ADD支持自動解壓和URL下載(通常不推薦)。

WORKDIR
設(shè)置工作目錄,后續(xù)指令均在此路徑下執(zhí)行:

WORKDIR /app
 

ENV
設(shè)置環(huán)境變量,可被后續(xù)指令和容器運行時引用:

ENV NODE_ENV=production
 

EXPOSE
聲明容器運行時監(jiān)聽的端口(實際映射需通過-p參數(shù)):

EXPOSE 8080
 

CMD
指定容器啟動時的默認(rèn)命令(可被docker run覆蓋):

CMD ["python", "app.py"]
 

ENTRYPOINT
配置容器啟動時的入口命令(通常與CMD配合使用):

ENTRYPOINT ["nginx"]
CMD ["-g", "daemon off;"]
 

VOLUME
創(chuàng)建掛載點,用于持久化數(shù)據(jù):

VOLUME /data
 

USER
指定運行指令的用戶身份:

USER node
 

 小 結(jié)

Docker 鏡像的創(chuàng)建方式多種多樣,常用的有:
基于現(xiàn)有鏡像創(chuàng)建 :通過修改容器并提交為新的鏡像。
基于本地模板創(chuàng)建 :從模板文件導(dǎo)入創(chuàng)建鏡像。
基于 Dockerfile 創(chuàng)建 :通過編寫 Dockerfile 來定制鏡像,支持自動化構(gòu)建。

Docker Compose編排

Docker Compose 是一個用于定義和運行多容器 Docker 應(yīng)用程序的工具,通過 YAML 文件配置服務(wù)、網(wǎng)絡(luò)和卷,簡化容器化應(yīng)用的部署與管理。

基本結(jié)構(gòu)

Docker Compose 的核心是 docker-compose.yml 文件,其結(jié)構(gòu)通常包含以下部分:

version: "3.8"  # 指定 Compose 文件版本
services:       # 定義服務(wù)容器
  web:
    image: nginx:latest
    ports:
      - "80:80"
  db:
    image: postgres:13
    environment:
      POSTGRES_PASSWORD: example
volumes:        # 定義數(shù)據(jù)卷
  db_data:
networks:       # 定義網(wǎng)絡(luò)
  app_network:
    driver: bridge
 

常用命令

啟動服務(wù)(后臺運行):

docker-compose up -d
 

停止服務(wù)并刪除容器:

docker-compose down
 

查看運行狀態(tài):

docker-compose ps
 

查看服務(wù)日志:

docker-compose logs -f
 

高級配置技巧

環(huán)境變量支持:

services:
  app:
    environment:
      - DEBUG=${DEBUG_LEVEL}  # 從 .env 文件或主機環(huán)境讀取
 

依賴管理:

services:
  web:
    depends_on:
      - db
      - redis
 

資源限制:

services:
  worker:
    deploy:
      resources:
        limits:
          cpus: "0.5"
          memory: 512M
 

實際應(yīng)用示例

以下是一個典型 Web 應(yīng)用配置(包含前端、后端和數(shù)據(jù)庫):

version: "3.8"
services:
  frontend:
    build: ./frontend
    ports:
      - "3000:3000"
    volumes:
      - ./frontend:/app
    depends_on:
      - api

  api:
    build: ./backend
    ports:
      - "5000:5000"
    environment:
      DB_URL: postgres://user:pass@db:5432/app
    depends_on:
      - db

  db:
    image: postgres:13
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass

volumes:
  db_data:
 

性能優(yōu)化建議

  • 使用 docker-compose build --parallel 加速多服務(wù)構(gòu)建
  • 合理配置 restart 策略(如 restart: unless-stopped
  • 對生產(chǎn)環(huán)境使用 docker-compose.prod.yml 覆蓋開發(fā)配置
  • 通過 docker-compose config 驗證配置文件語法

YAML文件格式及編寫注意事項

YAML(YAML Ain't Markup Language)是一種人類可讀的數(shù)據(jù)序列化格式,常用于配置文件、數(shù)據(jù)交換等場景。其核心特點包括:

  • 使用縮進表示層級關(guān)系(空格縮進,禁止用制表符)。
  • 支持鍵值對、列表、標(biāo)量(字符串、數(shù)字等)等數(shù)據(jù)結(jié)構(gòu)。
  • 注釋以 # 開頭。

基本語法示例

# 鍵值對
key: value

# 列表
fruits:
  - apple
  - banana

# 嵌套結(jié)構(gòu)
person:
  name: "Alice"
  age: 30
 

編寫注意事項

縮進與空格
  • 同一層級元素必須對齊,縮進使用空格(通常2或4個)。
  • 冒號 : 后需加空格(如 key: value)。
字符串處理
避免常見錯誤
高級特性(謹(jǐn)慎使用)

驗證與工具

示例:完整配置文件

  • 普通字符串無需引號,但含特殊字符(如 :、#)時需用引號包裹:
    message: "Hello: World"
     
    
  • 多行字符串可用 |(保留換行)或 >(折疊換行):

    description: |
      This is a
      multi-line text.
     
    

    數(shù)據(jù)類型明確

  • 布爾值建議用 true/false,而非字符串 "true"
  • 數(shù)字直接書寫(如 42),科學(xué)計數(shù)法需注意(如 1e5)。
  • 縮進不一致導(dǎo)致解析失敗。
  • 鍵名重復(fù)(部分解析器會覆蓋而非報錯)。
  • 未轉(zhuǎn)義特殊字符(如 @、% 可能被誤認(rèn)為特殊指令)。
  • 錨點 & 和別名 * 可復(fù)用代碼塊,但過度使用會降低可讀性。
  • 合并鍵 << 需確保解析器支持。
  • 使用在線工具(如 YAML Lint)驗證語法。
  • 編輯器中安裝插件(如 VSCode 的 YAML 擴展)實時檢查。
# 數(shù)據(jù)庫配置
database:
  host: "localhost"
  port: 5432
  credentials:
    username: admin
    password: "secure@123"

# 功能開關(guān)
features:
  logging: true
  analytics: false

# 白名單
allowed_ips:
  - 192.168.1.1
  - 10.0.0.1
 

Docker-Harbor私有倉庫部署與管理

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

確保已安裝 Docker 和 Docker Compose,操作系統(tǒng)建議使用 Linux(如 Ubuntu/CentOS)。Harbor 需要至少 4GB 內(nèi)存和 50GB 存儲空間。

下載 Harbor 安裝包

從 GitHub 下載最新版本的 Harbor 離線安裝包:

wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-offline-installer-v2.7.0.tgz
tar -xzvf harbor-offline-installer-v2.7.0.tgz
cd harbor
 

配置 Harbor

修改 harbor.yml 配置文件,設(shè)置主機名、端口、數(shù)據(jù)目錄等關(guān)鍵參數(shù):

hostname: registry.yourdomain.com
http:
  port: 80
https:
  port: 443
  certificate: /path/to/cert.pem
  private_key: /path/to/key.pem
data_volume: /data/harbor
 

啟動 Harbor

執(zhí)行安裝腳本并啟動服務(wù):

./install.sh
 

安裝完成后,通過 docker-compose ps 檢查所有容器是否正常運行。

訪問 Harbor 控制臺

瀏覽器訪問 http://<your-hostname>,默認(rèn)管理員賬號為 admin,密碼在 harbor.yml 中配置(默認(rèn)為 Harbor12345)。

推送鏡像到 Harbor

登錄 Docker 并推送鏡像:

docker login registry.yourdomain.com
docker tag your-image:tag registry.yourdomain.com/project/your-image:tag
docker push registry.yourdomain.com/project/your-image:tag
 

管理 Harbor

  • 用戶與權(quán)限:通過控制臺創(chuàng)建用戶、項目并分配角色(如管理員、開發(fā)者)。
  • 垃圾回收:定期執(zhí)行垃圾回收清理無用鏡像:
    docker-compose exec -it harbor-registry registry garbage-collect /etc/registry/config.yml
     
    
  • 備份與恢復(fù):使用官方工具備份數(shù)據(jù)目錄和數(shù)據(jù)庫。

高可用部署

生產(chǎn)環(huán)境建議配置:

  • 使用外部數(shù)據(jù)庫(PostgreSQL)和 Redis
  • 啟用 HTTPS 并配置負載均衡
  • 設(shè)置多個實例通過共享存儲(如 NFS)實現(xiàn)數(shù)據(jù)同步

常見問題處理

  • 證書錯誤:確保客戶端信任 Harbor 的 CA 證書。
  • 存儲不足:擴展數(shù)據(jù)目錄或配置外部存儲(如 S3)。
  • 性能優(yōu)化:調(diào)整 registry 組件的緩存參數(shù)。

通過以上步驟,可以完成 Docker Harbor 私有倉庫的部署與日常管理。定期檢查日志和更新版本以確保安全性與穩(wěn)定性。

Harbor簡介

Harbor 是一個開源的容器鏡像倉庫管理工具,由 VMware 公司開發(fā)并貢獻給 Cloud Native Computing Foundation (CNCF)。它提供了企業(yè)級的鏡像存儲、安全掃描、權(quán)限管理和復(fù)制功能,適用于 Kubernetes 和 Docker 環(huán)境。

核心功能

鏡像管理
支持 Docker 鏡像的存儲、分發(fā)和管理,提供多版本控制和垃圾回收機制。

安全掃描
集成 Clair 等工具,支持鏡像漏洞掃描,確保鏡像安全性。

權(quán)限控制
基于角色的訪問控制(RBAC),支持多租戶管理,可細化到項目級別的權(quán)限分配。

復(fù)制功能
支持跨多個 Harbor 實例的鏡像復(fù)制,適用于多數(shù)據(jù)中心或混合云場景。

架構(gòu)組成

核心組件

  • Proxy(Nginx):處理外部請求的路由和負載均衡。
  • Registry:存儲容器鏡像,基于 Docker Distribution 實現(xiàn)。
  • Core:提供 API 服務(wù)、用戶認(rèn)證和項目管理。
  • Database(PostgreSQL):存儲用戶、項目等元數(shù)據(jù)。
  • Job Service:處理異步任務(wù)(如鏡像復(fù)制、垃圾回收)。

可選組件

  • Chart Museum:管理 Helm Chart。
  • Notary:提供鏡像簽名和驗證功能。

部署方式

單機部署
通過 Docker Compose 快速啟動,適合測試或小規(guī)模環(huán)境。

高可用部署
支持 Kubernetes 集群部署,結(jié)合外部數(shù)據(jù)庫和存儲(如 S3、Ceph)實現(xiàn)高可用。

應(yīng)用場景

  • CI/CD 流水線:作為鏡像倉庫與 Jenkins、GitLab CI 等工具集成。
  • 混合云環(huán)境:通過鏡像復(fù)制實現(xiàn)跨云鏡像同步。
  • 安全合規(guī):滿足企業(yè)級鏡像掃描和審計需求。

部署Harbor服務(wù)

安裝 Docker 和 Docker Compose

確保系統(tǒng)已安裝 Docker 和 Docker Compose。Docker 版本需不低于 17.06.0,Docker Compose 版本不低于 1.18.0。

安裝 Docker:

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable docker
systemctl start docker
 

安裝 Docker Compose:

curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
 

下載 Harbor 離線安裝包

從 Harbor 官方 GitHub 下載最新版本的離線安裝包:

wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-offline-installer-v2.5.0.tgz
tar xvf harbor-offline-installer-v2.5.0.tgz
cd harbor
 

配置 Harbor

修改 harbor.yml 配置文件,主要調(diào)整以下參數(shù):

hostname: your.domain.com  # 替換為實際域名或 IP
http:
  port: 80
https:
  port: 443
  certificate: /path/to/cert.pem
  private_key: /path/to/key.pem
harbor_admin_password: Harbor12345  # 管理員初始密碼
database:
  password: root123  # 數(shù)據(jù)庫密碼
data_volume: /data  # 數(shù)據(jù)存儲路徑
 

若使用 HTTP 協(xié)議,需注釋 HTTPS 相關(guān)配置并啟用 HTTP:

# https:
#   port: 443
#   certificate: /path/to/cert.pem
#   private_key: /path/to/key.pem
 

安裝 Harbor

執(zhí)行安裝腳本:

./install.sh
 

安裝完成后,可通過瀏覽器訪問 http://your.domain.com,使用默認(rèn)用戶名 admin 和配置文件中設(shè)置的密碼登錄。

管理 Harbor 服務(wù)

停止 Harbor 服務(wù):

docker-compose down -v
 

重啟 Harbor 服務(wù):

docker-compose up -d
 

卸載 Harbor(保留數(shù)據(jù)):

./install.sh --uninstall
 

徹底卸載(刪除數(shù)據(jù)):

./install.sh --with-notary --with-trivy --with-chartmuseum --delete-data
 

配置 TLS 證書

若需啟用 HTTPS,將證書和私鑰文件放置到指定路徑,并在 harbor.yml 中配置正確路徑。證書可通過 Let's Encrypt 或自簽名生成。

總結(jié)

通過 Docker 鏡像構(gòu)建,應(yīng)用及其運行環(huán)境被封裝為可移植的單元,確保開發(fā)、測試和生產(chǎn)環(huán)境的一致性。Docker Compose 以簡潔的 YAML 配置定義多容器應(yīng)用,實現(xiàn)服務(wù)依賴管理、網(wǎng)絡(luò)配置和資源分配的自動化。結(jié)合 Harbor 倉庫,團隊能夠安全地存儲、分發(fā)鏡像,并通過訪問控制、漏洞掃描等功能增強供應(yīng)鏈安全。

掌握這三項技術(shù),不僅能優(yōu)化本地開發(fā)與測試流程,還能為大規(guī)模部署提供可靠基礎(chǔ)。未來可進一步探索 Kubernetes 編排、CI/CD 流水線集成等進階實踐,構(gòu)建更高效的云原生架構(gòu)。

到此這篇關(guān)于Docker鏡像構(gòu)建_Docker Compose編排實踐_Docker Harbor倉庫的集成的文章就介紹到這了,更多相關(guān)Docker與Docker Compose以及Docker Harbor內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 寫給前端的nginx配置指南基于docker所有配置秒級運行(最新講解)

    寫給前端的nginx配置指南基于docker所有配置秒級運行(最新講解)

    這篇文章主要介紹了寫給前端的nginx配置指南基于docker所有配置秒級運行,通過?docker?高效學(xué)習(xí)?nginx?配置,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • 如何通過Docker部署Nginx服務(wù)

    如何通過Docker部署Nginx服務(wù)

    本文闡述的Docker部署Nginx方案,核心在于通過目錄掛載實現(xiàn)數(shù)據(jù)持久化,既保留了容器化部署的輕量特性,又解決了配置與數(shù)據(jù)的管理難題,本文將詳細介紹如何通過Docker部署?Nginx?1.24.0?版本,并實現(xiàn)配置文件、日志和網(wǎng)站內(nèi)容的持久化管理,感興趣的朋友一起看看吧
    2025-11-11
  • Docker限制容器的內(nèi)存使用大小的實戰(zhàn)指南

    Docker限制容器的內(nèi)存使用大小的實戰(zhàn)指南

    在使用 Docker 部署服務(wù)時,如果不加限制,某個容器可能因為內(nèi)存泄漏或負載過高,導(dǎo)致主機內(nèi)存被耗盡,拖垮其他容器甚至整個系統(tǒng),所以本文給大家介紹了Docker如何限制容器的內(nèi)存使用大小,需要的朋友可以參考下
    2026-02-02
  • 關(guān)于docker中?WSL?配置與修改問題

    關(guān)于docker中?WSL?配置與修改問題

    這篇文章主要介紹了docker中?WSL?配置與修改,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • docker鏡像管理命令詳解

    docker鏡像管理命令詳解

    這篇文章主要介紹了docker鏡像管理命令,我們也可以使用命令來搜索鏡像,比如我們需要一個tomcat的鏡像來作為我們的web服務(wù),我們可以通過 docker search 命令搜索tomcat來尋找適合我們的鏡像,本文給大家介紹的非常詳細,需要的朋友參考下吧
    2022-07-07
  • 在Docker容器中部署MSSQL

    在Docker容器中部署MSSQL

    這篇文章介紹了在Docker容器中部署MSSQL的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • docker數(shù)據(jù)管理使用及說明

    docker數(shù)據(jù)管理使用及說明

    本文介紹了Docker數(shù)據(jù)卷的基本概念、創(chuàng)建和管理方法,強調(diào)數(shù)據(jù)卷用于持久化和共享數(shù)據(jù),生命周期獨立于容器,并說明了如何掛載主機目錄及清理無主數(shù)據(jù)卷的方法
    2025-10-10
  • 使用docker部署hadoop集群的詳細教程

    使用docker部署hadoop集群的詳細教程

    這篇文章主要介紹了使用docker部署hadoop集群的詳細教程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值需要的朋友可以參考下
    2020-09-09
  • Mac上將brew安裝的MySql改用Docker執(zhí)行操作過程

    Mac上將brew安裝的MySql改用Docker執(zhí)行操作過程

    本文分步驟給大家介紹Mac上將brew安裝的MySql改用Docker執(zhí)行操作過程的知識,本文給大家介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-11-11
  • 完美卸載Docker的詳細步驟

    完美卸載Docker的詳細步驟

    Docker是一種流行的容器化平臺,但是有時候我們可能需要卸載Docker,無論是因為需要重新安裝版本,還是因為不再需要使用Docker,無論何種原因,正確地卸載Docker是很重要的,以確保系統(tǒng)的干凈和穩(wěn)定,下面跟大家詳細介紹如何徹底卸載Docker的方法,讓你能夠輕松地清理干凈
    2023-11-11

最新評論

乐昌市| 镇平县| 浏阳市| 冕宁县| 垫江县| 牟定县| 德江县| 枣阳市| 临漳县| 张家界市| 工布江达县| 刚察县| 中宁县| 双桥区| 射洪县| 四子王旗| 翁源县| 廊坊市| 眉山市| 隆子县| 蒲城县| 日照市| 龙泉市| 铜陵市| 仙游县| 阳朔县| 莱阳市| 雷州市| 北安市| 景洪市| 乾安县| 桐梓县| 砚山县| 宣威市| 毕节市| 香格里拉县| 翁源县| 东山县| 周口市| 西乌珠穆沁旗| 乐平市|