Docker Compose從安裝到使用詳細(xì)過程
在現(xiàn)代容器化應(yīng)用開發(fā)中,Docker Compose 是一個(gè)不可或缺的工具,它能夠幫助我們輕松定義和運(yùn)行多容器的 Docker 應(yīng)用程序。
一、什么是 Docker Compose?
Docker Compose 是 Docker 官方提供的一個(gè)工具,用于定義和運(yùn)行多容器 Docker 應(yīng)用程序。通過一個(gè) YAML 文件(docker-compose.yml),我們可以配置應(yīng)用程序的服務(wù),然后使用一個(gè)命令就可以從配置中創(chuàng)建并啟動(dòng)所有服務(wù)。官網(wǎng)直通車
Docker Compose 的優(yōu)勢
- 簡化配置:通過一個(gè)配置文件管理多個(gè)容器
- 一鍵部署:一條命令啟動(dòng)整個(gè)應(yīng)用棧
- 環(huán)境一致性:開發(fā)、測試、生產(chǎn)環(huán)境配置統(tǒng)一
- 服務(wù)編排:自動(dòng)處理服務(wù)間的依賴關(guān)系
二、安裝 Docker Compose
1.在 Linux 上安裝
(1)方法一:使用包管理器安裝(推薦)
對于 Ubuntu/Debian 系統(tǒng):
# 更新包索引 sudo apt update # 安裝 Docker Compose 插件 sudo apt install docker-compose-plugin # 驗(yàn)證安裝 docker compose version
對于 CentOS/RHEL/Fedora 系統(tǒng):
# CentOS/RHEL 8+ sudo yum install docker-compose-plugin # Fedora sudo dnf install docker-compose-plugin # 驗(yàn)證安裝 docker compose version
(2)方法二:下載二進(jìn)制文件
# 下載最新版本的 Docker Compose sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 添加執(zhí)行權(quán)限 sudo chmod +x /usr/local/bin/docker-compose # 驗(yàn)證安裝 docker-compose --version
2.在其他平臺安裝
- macOS:如果使用 Docker Desktop,已經(jīng)包含 Docker Compose
- Windows:如果使用 Docker Desktop,已經(jīng)包含 Docker Compose
三、Docker Compose 基本使用
1. 創(chuàng)建 docker-compose.yml 文件
version: '3.8'
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
depends_on:
- db
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: myapp
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:2. 常用命令詳解
# 啟動(dòng)所有服務(wù) docker compose up # 后臺啟動(dòng)服務(wù) docker compose up -d # 停止服務(wù)并清理容器 docker compose down # 查看運(yùn)行狀態(tài) docker compose ps # 查看日志 docker compose logs # 重新構(gòu)建服務(wù) docker compose build # 重啟服務(wù) docker compose restart
四、實(shí)際應(yīng)用示例
1.構(gòu)建一個(gè)完整的 Web 應(yīng)用環(huán)境
version: '3.8'
services:
# 前端服務(wù)
frontend:
image: node:16
working_dir: /app
volumes:
- ./frontend:/app
ports:
- "3000:3000"
command: npm start
environment:
- REACT_APP_API_URL=http://backend:5000
depends_on:
- backend
# 后端服務(wù)
backend:
build: ./backend
ports:
- "5000:5000"
environment:
- DATABASE_URL=postgresql://user:pass@db:5432/mydb
- REDIS_URL=redis://redis:6379
depends_on:
- db
- redis
# 數(shù)據(jù)庫
db:
image: postgres:13
environment:
POSTGRES_DB: mydb
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
# 緩存
redis:
image: redis:alpine
ports:
- "6379:6379"
volumes:
postgres_data:2.使用環(huán)境變量
創(chuàng)建 .env 文件:
DB_HOST=localhost DB_PORT=5432 TAG=v1.0
在 docker-compose.yml 中使用:
version: '3.8'
services:
app:
image: myapp:${TAG:-latest}
environment:
- DB_HOST=${DB_HOST}
- DB_PORT=${DB_PORT}
env_file:
- .env3.高級使用技巧
多環(huán)境配置管理
# 開發(fā)環(huán)境 docker compose -f docker-compose.yml -f docker-compose.dev.yml up # 生產(chǎn)環(huán)境 docker compose -f docker-compose.yml -f docker-compose.prod.yml up
五、docker compose和docker-compose區(qū)別
1.安裝docker compose
sudo apt install docker-compose-plugin # 使用方式:docker compose(注意中間有空格)
2.安裝docker-compose
sudo apt install docker.io docker-compose # 使用方式:docker-compose(連寫,帶橫線)
3.詳細(xì)對比分析
特性 | docker-compose-plugin | docker-compose |
|---|---|---|
安裝命令 |
|
|
官方推薦 | ? Docker官方推薦的新方式 | 傳統(tǒng)方式 |
維護(hù)狀態(tài) | 積極維護(hù) | 逐漸被替代 |
功能完整性 | 完全兼容 | 完全兼容 |
更新頻率 | 更頻繁 | 較慢 |
總的來說docker-compose是v1版本,docker compose是v2版本,官方推薦用新版的。
到此這篇關(guān)于Docker Compose 詳解:從安裝到使用的完整指南的文章就介紹到這了,更多相關(guān)Docker Compose安裝使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker提示permission?denied錯(cuò)誤的解決方案
這篇文章主要給大家介紹了關(guān)于Docker提示permission?denied錯(cuò)誤的解決方案,出現(xiàn)這個(gè)問題是因?yàn)樗拗鳈C(jī)的當(dāng)前運(yùn)行用戶和docker容器里面的運(yùn)行用戶不一致導(dǎo)致訪問權(quán)限問題,需要的朋友可以參考下2023-08-08
本地Docker部署Navidrome音樂服務(wù)器與遠(yuǎn)程訪問聽歌詳細(xì)教程(圖文詳解)
本文和大家分享一款目前在G站有11K+Star的開源跨平臺音樂服務(wù)器?Navidrome,如何在?Linux?環(huán)境本地使用?Docker?部署,并結(jié)合cpolar?內(nèi)網(wǎng)穿透工具配置公網(wǎng)地址,實(shí)現(xiàn)隨時(shí)隨地遠(yuǎn)程訪問本地存儲(chǔ)音樂的詳細(xì)流程,感興趣的朋友跟隨小編一起看看吧2024-08-08
Docker 安裝 Nginx 并掛載目錄的實(shí)現(xiàn)示例
本文介紹了如何使用Docker拉取Nginx鏡像、創(chuàng)建容器,并設(shè)置掛載目錄,掛載目錄用于將容器內(nèi)配置文件與主機(jī)關(guān)聯(lián),便于直接修改影響容器配置,感興趣的可以了解一下2024-10-10
基于iptables的Docker端口白名單控制實(shí)現(xiàn)
本文主要介紹了通過iptables為Docker?Compose部署的容器設(shè)置宿主機(jī)端口IP白名單,強(qiáng)調(diào)規(guī)則順序與持久化配置,提供單端口和multiport兩種實(shí)現(xiàn)方式,感興趣的可以了解一下2025-07-07

