《Docker極簡教程》--Docker的高級特性--Docker Compose的使用

Docker Compose是一個用于定義和運行多容器Docker應用程序的工具。它允許開發人員通過簡單的YAML文件來定義應用程序的服務、網絡和卷等資源,并使用單個命令來啟動、停止和管理整個應用程序的容器。以下是關于Docker Compose的一些關鍵信息和優勢:

  1. 定義多容器應用程序:Docker Compose允許你通過一個單獨的文件來定義整個應用程序的服務組件,包括Web服務器、數據庫、消息隊列等。這些服務可以相互通信,共同組成一個完整的應用程序。
  2. 簡化開發環境配置:開發人員可以使用Docker Compose在本地創建與生產環境相似的開發環境。通過在Compose文件中定義應用程序的組件和配置,開發人員可以輕松地在不同的環境之間進行切換,從而加快開發和測試周期。
  3. 一鍵啟動和停止:通過簡單的命令,如docker-compose updocker-compose down,你可以輕松地啟動和停止整個應用程序。這使得在開發、測試和部署過程中快速迭代成為可能。
  4. 依賴管理:Docker Compose允許你定義服務之間的依賴關系,以確保它們在啟動時以正確的順序啟動。這可以確保在啟動應用程序時,所有的依賴服務都已經準備就緒,從而避免了啟動順序引發的問題。
  5. 跨平臺兼容性:Docker Compose可以在不同的操作系統上運行,包括Linux、Windows和macOS。這使得團隊成員可以在不同的開發環境中協同工作,而無需擔心環境差異性。
  6. 可擴展性和靈活性:Docker Compose提供了許多靈活的選項和配置,使得你可以根據應用程序的需求進行定制。你可以定義網絡配置、卷掛載、環境變量等,以滿足不同場景下的需求。

Docker Compose簡化了多容器應用程序的開發、測試和部署過程,提高了開發團隊的生產力,同時降低了應用程序的部署復雜度和管理成本。

一、安裝和配置

1.1 安裝Docker Compose

要安裝Docker Compose,你可以按照以下步驟進行:

  1. 檢查系統要求
    • 確保你的系統符合Docker Compose的最低要求。Docker Compose通常支持主流的操作系統,包括Linux、macOS和Windows。確保你的系統滿足相關的要求。
  2. 下載Docker Compose
    • 你可以從Docker官方網站下載最新版本的Docker Compose。訪問 https://docs.docker.com/compose/install/,選擇適合你系統的安裝方式,如Linux、macOS或Windows。
  3. 安裝Docker Compose
    • 根據你的操作系統選擇合適的安裝方法。通常情況下,Linux用戶可以將Docker Compose可執行文件復制到PATH目錄中,macOS用戶可以使用Homebrew來安裝,Windows用戶可以下載并運行安裝程序。
  4. 驗證安裝
    • 安裝完成后,打開終端或命令提示符,運行以下命令來驗證Docker Compose是否成功安裝:
      docker-compose --version
      
      如果安裝成功,將顯示安裝的Docker Compose版本信息。
  5. 配置完成
    • 安裝完成后,你可以根據需要對Docker Compose進行進一步的配置。你可以設置環境變量、配置默認文件路徑等。

通過以上步驟,你應該能夠成功安裝并配置Docker Compose,從而開始使用它來管理和部署多容器的Docker應用程序。

1.2 配置Docker Compose環境

配置Docker Compose環境通常包括以下幾個步驟:

  1. 安裝Docker Engine
    • Docker Compose依賴于Docker Engine,因此首先需要確保你已經安裝了Docker Engine。你可以從Docker官方網站下載適合你操作系統的Docker Engine安裝程序,并按照指南進行安裝。
  2. 安裝Docker Compose
    • 按照前面提到的步驟,下載并安裝Docker Compose。確保你安裝了最新版本的Docker Compose,并將其添加到系統的PATH中,以便能夠在命令行中直接運行。
  3. 創建Docker Compose文件
    • 在你的項目目錄中創建一個名為docker-compose.yml的文件。這個YAML文件將用于定義你的多容器應用程序的服務、網絡和卷等配置。你可以在這個文件中定義你應用程序的各個組件以及它們之間的關系。
  4. 編寫Docker Compose文件
    • 使用你喜歡的文本編輯器打開docker-compose.yml文件,并按照Docker Compose的語法規則編寫服務定義。你可以定義每個服務的鏡像、端口映射、依賴關系等。確保你的文件格式正確,遵循正確的縮進和語法。
  5. 定義環境變量(可選)
    • 如果你的應用程序需要使用環境變量來配置,你可以在Docker Compose文件中定義這些變量。這可以通過environment關鍵字來實現,并在文件中為每個服務定義所需的環境變量。
  6. 啟動應用程序
    • 在項目目錄中,通過命令行進入到包含docker-compose.yml文件的目錄,然后運行以下命令來啟動你的應用程序:
      docker-compose up
      
      這將根據docker-compose.yml文件中的配置啟動所有定義的服務。
  7. 驗證應用程序
    • 啟動完成后,你可以通過訪問相應的端口來驗證你的應用程序是否正常工作。如果一切正常,你應該能夠在瀏覽器中看到你的應用程序。

通過以上步驟,你應該能夠成功配置Docker Compose環境,并使用它來管理和部署你的多容器應用程序。

二、Docker Compose基礎概念

2.1 服務(Services)

在Docker Compose中,"服務"是指一個定義了容器運行方式的配置。一個服務可以包括一個或多個容器,通常用于運行一個特定的應用程序或服務組件。

2.2 容器(Containers)

在Docker Compose中,"容器"是指通過Docker鏡像啟動的運行實例。每個容器都是一個獨立的、輕量級的虛擬環境,其中包含了一個完整的應用程序以及其運行所需的所有依賴項。

2.3 網絡(Networks)

在Docker Compose中,“網絡”(Networks)是指用于連接多個容器的虛擬網絡。通過網絡,容器可以相互通信,實現數據交換和服務之間的連接。

2.4 卷(Volumes)

在Docker Compose中,“卷”(Volumes)是一種用于持久化存儲數據的機制,它允許容器之間或容器與主機之間共享數據,并且數據會在容器被刪除時保持不變。

三、編寫Docker Compose文件

3.1 YAML語法簡介

YAML(YAML Ain’t Markup Language)是一種人類友好的數據序列化格式,常用于配置文件和數據交換。在Docker Compose中,使用YAML語法來編寫Compose文件來定義多容器應用程序的服務、網絡、卷等配置。以下是關于YAML語法的簡介:

  1. 縮進
    • YAML使用縮進來表示數據結構的層次關系,而不是使用花括號或其他符號。縮進一般是兩個空格或一個制表符。子項的縮進必須嚴格地相對于其父項。
  2. 鍵值對
    • YAML使用鍵值對的形式來表示數據,格式為key: value。鍵和值之間用冒號分隔,且冒號后面必須有一個空格。
  3. 列表
    • YAML允許在方括號[]內列出一組項目,每個項目用逗號分隔。列表中的每個項可以是簡單值、鍵值對、嵌套列表等。
  4. 注釋
    • YAML支持單行注釋,以#符號開頭。注釋可以出現在行的任何位置,但必須獨立成行。
  5. 字符串
    • 字符串可以使用單引號' '或雙引號" "括起來。如果字符串中包含特殊字符,建議使用雙引號括起來。
  6. 多行字符串
    • 如果字符串跨越多行,可以使用管道符|來表示保留換行符,或使用折疊符>來表示折疊換行符。這使得可以在多行字符串中保留原始的換行符和縮進。
  7. 文件引用
    • 在Compose文件中,可以使用<<符號來引用其他文件中的內容,這可以使得Compose文件更加模塊化和易于管理。
      下面是一個簡單的YAML示例:
# This is a YAML file
services:web:image: nginx:latestports:- "8080:80"db:image: mysql:latestenvironment:MYSQL_ROOT_PASSWORD: password

在這個示例中,services是一個鍵,它的值是一個字典,包含了兩個服務webdb。每個服務都是一個鍵值對,其中包含了服務的配置信息,如鏡像、端口映射、環境變量等。

以上是關于YAML語法的簡介,你可以使用這些語法規則來編寫Docker Compose文件,定義你的多容器應用程序的配置。

3.2 編寫基本的Docker Compose文件

下面是一個簡單的示例Docker Compose文件,用于定義一個包含Web服務和數據庫服務的多容器應用程序:

version: '3.8'services:web:image: nginx:latestports:- "8080:80"db:image: mysql:latestenvironment:MYSQL_ROOT_PASSWORD: password

在這個Compose文件中:

  • version: '3.8' 指定了Compose文件的版本。
  • services 是一個包含了兩個服務的字典。
  • web 是一個服務定義,它使用nginx:latest鏡像,并將容器內部的80端口映射到主機的8080端口。
  • db 是另一個服務定義,它使用mysql:latest鏡像,并通過環境變量設置了MySQL的root密碼為password

你可以將這個Compose文件保存為docker-compose.yml,然后在包含該文件的目錄中使用docker-compose up命令啟動這個多容器應用程序。這將會啟動nginx服務和MySQL服務,并將它們連接到默認的網絡中,使得它們可以相互通信。

3.3 多容器應用的配置

下面是一個示例的Docker Compose文件,用于配置一個包含多個容器的應用程序,其中包括Web服務、數據庫服務和消息隊列服務:

version: '3.8'services:web:image: nginx:latestports:- "8080:80"depends_on:- dbdb:image: mysql:latestenvironment:MYSQL_ROOT_PASSWORD: passwordvolumes:- db_data:/var/lib/mysqlredis:image: redis:latestvolumes:db_data:

在這個Compose文件中:

  • version: '3.8' 指定了Compose文件的版本。
  • services 是一個包含了三個服務的字典,分別是webdbredis
  • web 是一個服務定義,它使用nginx:latest鏡像,并將容器內部的80端口映射到主機的8080端口。它還通過depends_on字段指定了依賴于db服務,表示web服務依賴于db服務的啟動。
  • db 是一個服務定義,它使用mysql:latest鏡像,并通過環境變量設置了MySQL的root密碼為password。此外,通過volumes字段將數據庫的數據持久化到名為db_data的卷中。
  • redis 是另一個服務定義,它使用redis:latest鏡像。

除了服務定義之外,還定義了一個名為db_data的卷,用于持久化存儲MySQL數據庫的數據。

你可以將這個Compose文件保存為docker-compose.yml,然后在包含該文件的目錄中使用docker-compose up命令啟動整個應用程序。這將會啟動nginx、MySQL和Redis服務,并將它們連接到默認的網絡中,從而使得它們可以相互通信。

四、Docker Compose的常用命令

4.1 docker-compose up

docker-compose up 是 Docker Compose 中最常用的命令之一,用于啟動整個應用程序。它會根據 docker-compose.yml 文件中定義的服務來創建和啟動容器,并將它們連接到默認的網絡中。以下是關于 docker-compose up 命令的一些常見用法和選項:

  1. 基本用法
    docker-compose up
    
    這會在當前目錄下尋找 docker-compose.yml 文件,并根據其中定義的服務啟動應用程序。
  2. 后臺啟動
    docker-compose up -d
    
    使用 -d--detach 選項可以在后臺(detached mode)啟動應用程序,使得應用程序在后臺運行,不會阻塞命令行。
  3. 重新創建容器
    docker-compose up --force-recreate
    
    使用 --force-recreate 選項可以強制重新創建所有容器,即使它們已經存在。
  4. 重新構建鏡像
    docker-compose up --build
    
    使用 --build 選項可以在啟動容器之前重新構建服務的鏡像。
  5. 指定服務
    docker-compose up service_name
    
    指定要啟動的服務名稱,而不是啟動所有服務。可以同時指定多個服務,用空格分隔。
  6. 強制重新創建容器并構建鏡像
    docker-compose up --force-recreate --build
    
    結合使用 --force-recreate--build 選項可以在啟動之前強制重新創建所有容器,并重新構建服務的鏡像。
  7. 使用其他 Compose 文件
    docker-compose -f docker-compose.prod.yml up
    
    使用 -f 選項可以指定要使用的 Compose 文件,默認情況下是 docker-compose.yml
4.2 docker-compose down

docker-compose down 是 Docker Compose 中常用的命令之一,用于停止并移除通過 docker-compose up 啟動的容器和網絡。以下是關于 docker-compose down 命令的一些常見用法和選項:

  1. 基本用法
    docker-compose down
    
    這會停止并移除通過 docker-compose up 啟動的所有容器,并移除相關的網絡和卷。
  2. 移除容器
    docker-compose down --volumes
    
    使用 --volumes 選項可以同時移除相關的卷。這會刪除所有定義在 docker-compose.yml 中的 volumes 字段中的卷。
  3. 停止容器但不移除
    docker-compose down --stop
    
    使用 --stop 選項可以停止容器,但不移除它們。這意味著容器會停止運行,但仍然保留在系統中,可以使用 docker-compose up 再次啟動。
  4. 移除指定服務
    docker-compose down service_name
    
    指定要停止和移除的特定服務,而不是停止和移除所有服務。可以同時指定多個服務,用空格分隔。
  5. 移除網絡
    docker-compose down --remove-orphans
    
    使用 --remove-orphans 選項可以移除未在 docker-compose.yml 文件中定義的服務的網絡。這些服務稱為 “孤兒” 服務。
  6. 停止并移除容器、網絡和卷
    docker-compose down --volumes --remove-orphans
    
    結合使用 --volumes--remove-orphans 選項可以停止并移除所有容器,相關的網絡和卷,以及未定義的孤兒服務的網絡。
  7. 使用其他 Compose 文件
    docker-compose -f docker-compose.prod.yml down
    
    使用 -f 選項可以指定要使用的 Compose 文件,默認情況下是 docker-compose.yml
4.3 docker-compose ps

docker-compose ps 是 Docker Compose 中常用的命令之一,用于顯示通過 docker-compose up 啟動的所有容器的狀態信息。以下是關于 docker-compose ps 命令的一些常見用法和選項:

  1. 基本用法
    docker-compose ps
    
    這會顯示通過 docker-compose up 啟動的所有容器的狀態信息,包括容器名稱、運行狀態、關聯端口等。
  2. 只顯示服務名稱
    docker-compose ps --services
    
    使用 --services 選項可以只顯示服務的名稱,而不顯示完整的容器信息。
  3. 顯示詳細信息
    docker-compose ps --verbose
    
    使用 --verbose 選項可以顯示更詳細的容器信息,包括容器ID、端口映射、命令等。
  4. 只顯示停止的容器
    docker-compose ps --filter "status=exited"
    
    使用 --filter 選項可以根據容器的狀態進行過濾。在這個示例中,status=exited 表示只顯示已停止的容器。
  5. 顯示指定服務的容器
    docker-compose ps service_name
    
    指定要顯示的特定服務的容器,而不是顯示所有服務的容器信息。
  6. 使用其他 Compose 文件
    docker-compose -f docker-compose.prod.yml ps
    
    使用 -f 選項可以指定要使用的 Compose 文件,默認情況下是 docker-compose.yml
4.4 其他常用命令

除了 docker-compose updocker-compose downdocker-compose ps 外,還有一些其他常用的 Docker Compose 命令,如下:

  1. 啟動服務
    docker-compose start
    
    啟動已定義的服務,但不會重新構建容器或鏡像。
  2. 停止服務
    docker-compose stop
    
    停止已啟動的服務,但容器和網絡保留。
  3. 重啟服務
    docker-compose restart
    
    重啟已啟動的服務,會重新構建容器。
  4. 重新構建服務
    docker-compose build
    
    根據 docker-compose.yml 中的配置重新構建服務的容器鏡像。
  5. 查看服務日志
    docker-compose logs
    
    查看服務的日志輸出,可選參數可指定具體的服務名稱。
  6. 進入服務容器
    docker-compose exec service_name command
    
    在特定的服務容器中執行命令,service_name 為服務名稱,command 為要執行的命令。
  7. 列出所有定義的服務
    docker-compose config --services
    
    列出所有在 docker-compose.yml 文件中定義的服務名稱。
  8. 查看Compose文件配置
    docker-compose config
    
    檢查并驗證 docker-compose.yml 文件的配置。
  9. 暫停服務
    docker-compose pause
    
    暫停已啟動的服務,暫停后容器繼續存在,但不再接收流量。
  10. 恢復服務
docker-compose unpause

恢復被暫停的服務,使其重新接收流量。

這些命令可幫你管理和維護 Docker Compose 項目,確保的多容器應用程序在運行時能夠穩定地工作。

五、實例演示

5.1 創建一個簡單的Web應用

好的,我將指導你創建一個簡單的Web應用,并使用Docker Compose 來管理它。
假設你的Web應用是一個簡單的靜態網站,你可以使用Nginx作為Web服務器。我們將創建一個Docker Compose文件來定義Nginx服務,并將靜態文件掛載到容器中。讓我們開始:

  1. 創建項目目錄
    首先,創建一個新的目錄,用于存放你的Web應用文件和Docker Compose文件。
  2. 編寫Dockerfile
    在項目目錄中創建一個名為 Dockerfile 的文件,并添加以下內容:
    FROM nginx:latest
    COPY ./html /usr/share/nginx/html
    
    這個Dockerfile使用Nginx官方鏡像作為基礎鏡像,并將當前目錄下的 html 文件夾中的內容復制到容器中的 /usr/share/nginx/html 目錄下。
  3. 創建靜態網站文件
    在項目目錄中創建一個名為 html 的文件夾,并在其中添加你的靜態網站文件,比如 index.html
  4. 編寫Docker Compose文件
    在項目目錄中創建一個名為 docker-compose.yml 的文件,并添加以下內容:
    version: '3.8'services:web:build: .ports:- "8080:80"
    
    這個Compose文件定義了一個名為 web 的服務,它使用當前目錄下的Dockerfile構建Nginx鏡像,并將容器內的80端口映射到主機的8080端口。
  5. 構建和啟動應用程序
    打開命令行,導航到項目目錄,并運行以下命令來構建和啟動應用程序:
    docker-compose up -d
    
    這將會構建Nginx鏡像并啟動容器,你的Web應用程序將在 http://localhost:8080 上可用。
  6. 查看網站
    打開瀏覽器,并訪問 http://localhost:8080,你應該能夠看到你的靜態網站。

通過這個簡單的演示,你學會了如何使用Docker Compose創建一個簡單的Web應用,并在本地啟動它。你可以進一步擴展這個示例,添加更多的服務和功能,以滿足你的實際需求。

5.2 使用Docker Compose進行部署和管理

假設你有一個使用Node.js編寫的簡單Web應用,需要部署到生產環境中。你可以使用Docker Compose進行部署和管理。下面是一個示例演示:

  1. 創建項目目錄
    首先,在你的開發機器上創建一個新的目錄,用于存放你的Web應用程序代碼和Docker相關文件。
  2. 編寫Dockerfile
    在項目目錄中創建一個名為 Dockerfile 的文件,并添加以下內容:
    FROM node:14-alpineWORKDIR /appCOPY package.json .
    COPY package-lock.json .RUN npm installCOPY . .EXPOSE 3000CMD ["npm", "start"]
    
    這個Dockerfile使用了 Node.js 官方的 node:14-alpine 鏡像作為基礎鏡像,并在容器中設置了工作目錄、安裝了依賴項、復制了應用程序代碼,并且暴露了3000端口用于訪問Web應用。
  3. 編寫docker-compose.yml文件
    在項目目錄中創建一個名為 docker-compose.yml 的文件,并添加以下內容:
    version: '3.8'services:web:build: .ports:- "80:3000"
    
    這個Compose文件定義了一個名為 web 的服務,使用當前目錄下的Dockerfile構建鏡像,并將容器內的3000端口映射到主機的80端口。
  4. 編寫應用程序代碼
    在項目目錄中編寫你的Node.js應用程序代碼,比如一個簡單的Express應用。
  5. 構建和啟動應用程序
    在命令行中,導航到項目目錄,并運行以下命令來構建和啟動應用程序:
    docker-compose up -d
    
    這將會構建鏡像并啟動容器,你的Node.js應用程序將在 http://localhost 上可用。
  6. 管理應用程序
    你可以使用 docker-compose ps 命令查看容器的狀態,使用 docker-compose logs 命令查看容器的日志,使用 docker-compose stop 命令停止容器,使用 docker-compose start 命令啟動已停止的容器等。

通過這個簡單的演示,你學會了如何使用Docker Compose部署和管理一個Node.js Web應用程序。你可以根據需要修改Dockerfile和docker-compose.yml文件來適應你的實際情況。

5.3 擴展示例:添加數據庫服務

當你的Web應用需要與數據庫進行交互時,你可以通過Docker Compose輕松地將數據庫服務集成到你的應用中。以下是一個擴展示例,演示如何使用Docker Compose同時部署Node.js應用程序和MySQL數據庫服務。

  1. 更新docker-compose.yml文件
    修改你的 docker-compose.yml 文件,添加一個名為 db 的服務定義:
    version: '3.8'services:web:build: .ports:- "80:3000"depends_on:- dbdb:image: mysql:latestrestart: alwaysenvironment:MYSQL_DATABASE: 'my_database'MYSQL_USER: 'my_user'MYSQL_PASSWORD: 'my_password'MYSQL_ROOT_PASSWORD: 'root_password'ports:- "3306:3306"
    
    這個Compose文件中添加了一個名為 db 的服務,它使用MySQL官方鏡像,并設置了一些環境變量用于配置MySQL數據庫。此外,還將容器的3306端口映射到主機的3306端口。
  2. 更新應用程序代碼
    修改你的Node.js應用程序代碼,以便它可以連接到MySQL數據庫。你需要確保應用程序代碼中的數據庫連接字符串正確指向數據庫服務的主機和端口。
  3. 構建和啟動應用程序
    在命令行中,導航到項目目錄,并運行以下命令來構建和啟動應用程序及數據庫服務:
    docker-compose up -d
    
    這將會構建鏡像并啟動容器,你的Node.js應用程序將在 http://localhost 上可用,并且可以與MySQL數據庫進行交互。
  4. 驗證
    打開瀏覽器,并訪問你的應用程序。確保應用程序能夠正常工作,并且能夠與數據庫進行交互。

通過這個擴展示例,你學會了如何使用Docker Compose同時部署Node.js應用程序和MySQL數據庫服務,并將它們連接起來,以實現一個完整的應用程序環境。你可以根據需要添加其他服務,如緩存服務、消息隊列服務等,以滿足你的應用程序需求。

六、總結

本文它首先解釋了Docker Compose的概念和優勢,然后逐步介紹了安裝、配置、基礎概念以及常用命令。通過實例演示,展示了如何使用Docker Compose構建和管理簡單的Web應用程序,并進一步擴展到與數據庫服務集成。總的來說,本文全面而簡潔地介紹了Docker Compose的基本概念、操作方法和實際應用,為讀者提供了一個快速入門的指南。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716547.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716547.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716547.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

B082-SpringCloud-Eureka

目錄 微服務架構與springcloud架構演變為什么使用微服務微服務的通訊方式架構的選擇springcloud概述場景模擬之基礎架構的搭建模擬微服務之間的服務調用目前遠程調用的問題 eureka注冊中心的作用注冊中心的實現服務提供者注冊到注冊中心 springcloud基于springboot 微服務架構與…

10 計算機結構

馮諾依曼體系結構 馮諾依曼體系結構&#xff0c;也被稱為普林斯頓結構&#xff0c;是一種計算機架構&#xff0c;其核心特點包括將程序指令存儲和數據存儲合并在一起的存儲器結構&#xff0c;程序指令和數據的寬度相同&#xff0c;通常都是16位或32位 我們常見的計算機,筆記本…

在Centos7中用Docker部署gitlab-ce

一、介紹 GitLab Community Edition (GitLab CE) 是一個開源的版本控制系統和協作平臺&#xff0c;用于管理和追蹤軟件開發項目。它提供了一套完整的工具和功能&#xff0c;包括代碼托管、版本控制、問題跟蹤、持續集成、持續交付和協作功能&#xff0c;使團隊能夠更加高效地進…

動態規劃|【路徑問題】|931.下降路徑最小和

目錄 題目 題目解析 思路 1.狀態表示 2.狀態轉移方程 3.初始化 4.填表順序 5.返回值 代碼 題目 931. 下降路徑最小和 給你一個 n x n 的 方形 整數數組 matrix &#xff0c;請你找出并返回通過 matrix 的下降路徑 的 最小和 。 下降路徑 可以從第一行中的任何元素開…

【Vue3】Props的使用詳解

&#x1f497;&#x1f497;&#x1f497;歡迎來到我的博客&#xff0c;你將找到有關如何使用技術解決問題的文章&#xff0c;也會找到某個技術的學習路線。無論你是何種職業&#xff0c;我都希望我的博客對你有所幫助。最后不要忘記訂閱我的博客以獲取最新文章&#xff0c;也歡…

概率基礎——多元正態分布

概率基礎——多元正態分布 介紹 多元正態分布是統計學中一種重要的多維概率分布&#xff0c;描述了多個隨機變量的聯合分布。在多元正態分布中&#xff0c;每個隨機變量都服從正態分布&#xff0c;且不同隨機變量之間可能存在相關性。本文將以二元標準正態分布為例&#xff0…

多線程JUC 第2季 中斷線程

一 中斷線程 1.1 中斷概念 1.在java中&#xff0c;沒有提供一種立即停止一條線程。但卻給了停止線程的協商機制-中斷。 中斷是一種協商機制。中斷的過程完全需要程序員自己實現。也即&#xff0c;如果要中斷一個線程&#xff0c;你需要手動調用該線程的interrupt()方法&…

錄制用戶操作實現自動化任務

先上視頻&#xff01;&#xff01; 流程自動化工具-錄制操作繪制流程 這個想法之前就有了&#xff0c;趁著周末時間給它擼出來。 實現思路 從之前的文章自動化桌面未來展望中已經驗證了錄制繪制流程圖的可行性。基于DOM錄制頁面操作軌跡的思路監聽頁面點擊、輸入事件即可&…

無人機鏡頭穩定的原理和相關算法

無人機的鏡頭穩定主要基于兩個關鍵技術&#xff1a;鏡頭平衡技術和實時電子穩像。無人機鏡頭穩定的原理和相關算法主要是通過鏡頭平衡技術和實時電子穩像技術來保持攝像鏡頭的穩定性&#xff0c;從而拍攝出清晰、穩定的畫面。無人機鏡頭穩定的原理主要是通過傳感器和算法來實現…

Ocr之PaddleOcr模型訓練

目錄 一、系統環境 1 鏡像拉取ppocr 進行部署 2 安裝paddlepaddle 二、訓練前的準備 1 下載源碼 2 預模型下載 3 修改模型訓練文件yml 4 編排訓練集 5 執行腳本進行訓練 6 需要修改文件夾名稱 三、開始訓練 1 執行訓練命令 2 對第一次評估進行解釋 3 引言 五、總…

NestJS使用模板引擎ejs

模板引擎? 模板引擎是一種用于生成動態內容的工具&#xff0c;它通過將預定義的模板與特定數據結合&#xff0c;來生成最終的輸出。? 在NodeJS開發中&#xff0c;我們會使用模板引擎來渲染一些常用的頁面&#xff0c;比如渲染代表404的Not Found 頁面&#xff0c;502的Bad …

異常值檢測-值域法 頭歌代碼解釋

這關做得不是很明白&#xff0c;如果有清楚的同志可以在評論區里面討論 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.neighbors import LocalOutlierFactor # 導入數據 abc pd.read_csv(deaths.csv) ## 只分析其中的Population和L…

C語言對類型的轉換

C語言對類型的轉換 文章目錄 C語言對類型的轉換整形提升和截斷整形提升整形提升規則整形提升的意義 截斷截斷規則 算數轉換 我們都知道&#xff0c;C語言中內置了多種整形類型&#xff0c;占用空間從大到小&#xff0c;基本滿足各類使用場景&#xff08;比如超長數字的運算就不…

【【C語言簡單小題學習-1】】

實現九九乘法表 // 輸出乘法口訣表 int main() {int i 0;int j 0;for (i 1; i < 9; i){for (j 1; j < i;j)printf("%d*%d%d ", i , j, i*j);printf("\n"); }return 0; }猜數字的游戲設計 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdi…

源碼視角,vue3為什么推薦用ref,而不是reactive

ref 和 reactive 是 Vue3 中實現響應式數據的核心 API。ref 用于包裝基本數據類型&#xff0c;而 reactive 用于處理對象和數組。盡管 reactive 似乎更適合處理對象&#xff0c;但 Vue3 官方文檔更推薦使用 ref。 我的想法&#xff0c;ref就是比reactive好用&#xff0c;官方也…

Java 中對包含關系的判斷

本文將為您詳細講解 Java 中對包含關系的判斷&#xff0c;包括數組、字符串等&#xff0c;并提供相應的代碼例子。 1. 數組包含關系判斷 在 Java 中&#xff0c;數組包含關系判斷通常使用循環來實現。以下是幾種常見的判斷方法&#xff1a; 示例 1&#xff1a;使用 for…

Unity曲柄滑塊四桿機構運動計算

一、運動效果 二、機構的介紹 曲柄長度&#xff1a;a&#xff0c;線段AB長度 連桿長度&#xff1a;b&#xff0c;線段BC長度 偏心距離&#xff1a;e&#xff0c;滑塊軌跡與曲柄中心點A的垂直距離 三、已知點A點B和e的值&#xff0c;計算C點的位置 1、計算s的值 var h math.…

通過多進程并發方式(fork)實現服務器(注意要回收子進程)

以下內容為視頻學習記錄。 1、父進程accept后返回的文件描述符為cfd以及用于創建連接的lfd; 調用fork()創建子進程后&#xff0c;子進程繼承cfd,lfd&#xff0c;通過該cfd與連接過來的客戶端通信,lfd對子進程來說沒用&#xff0c;可以直接close(lfd); 對于父進程來說&#x…

雙非二本找實習前的準備day4

學習目標&#xff1a; 每天2-3到簡單sql&#xff08;刷完即止&#xff09;&#xff0c;每天復習代碼隨想錄上的題目3道算法&#xff08;時間充足可以繼續&#xff09;&#xff0c;背誦的八股的問題也在這里記錄了 今日碎碎念&#xff1a; 1&#xff09;偶爾還是貪玩游戲&…

Vue中的計算屬性和方法有什么區別?

Vue.js是一款流行的JavaScript前端框架&#xff0c;提供了豐富的功能和便捷的開發方式。在Vue中&#xff0c;計算屬性和方法是常用的兩種方式來處理數據和邏輯。但它們之間存在一些區別&#xff0c;本文將詳細介紹Vue中計算屬性和方法的區別&#xff0c;并通過示例代碼加深理解…