Docker Compose 配置指南小結(jié)
Docker Compose 是一個(gè)用于定義和運(yùn)行多容器 Docker 應(yīng)用的工具。通過(guò)一個(gè) docker-compose.yml 文件,你可以輕松地定義應(yīng)用中的服務(wù)、網(wǎng)絡(luò)、存儲(chǔ)卷等資源,并用一個(gè)命令啟動(dòng)所有服務(wù)。Docker Compose 主要用于簡(jiǎn)化多容器應(yīng)用的開(kāi)發(fā)、測(cè)試和部署流程。
本文將詳細(xì)介紹 Docker Compose 的配置、常用命令,以及使用方法的具體示例。
1. Docker Compose 配置
Docker Compose 的核心配置文件是 docker-compose.yml,它遵循 YAML 格式來(lái)定義應(yīng)用中的多個(gè)服務(wù)。
1.1 基本配置結(jié)構(gòu)
一個(gè)最基礎(chǔ)的 docker-compose.yml 文件結(jié)構(gòu)通常包括以下部分:
services:
# 定義服務(wù)
web:
image: nginx # 使用官方 nginx 鏡像
ports:
- "8080:80" # 將宿主機(jī)的8080端口映射到容器的80端口
volumes:
- ./html:/usr/share/nginx/html # 將本地html文件夾掛載到容器的html目錄
networks:
- webnet # 使用名為 webnet 的網(wǎng)絡(luò)
db:
image: mysql:5.7 # 使用 MySQL 鏡像
environment:
MYSQL_ROOT_PASSWORD: example # 設(shè)置MySQL root 密碼
networks:
- webnet # 使用同樣的網(wǎng)絡(luò)
networks:
webnet: # 定義 webnet 網(wǎng)絡(luò)
1.2 docker-compose.yml 的各部分
- services:定義服務(wù),每個(gè)服務(wù)可以有一個(gè)容器。每個(gè)服務(wù)都可以使用一個(gè) Docker 鏡像,或者從 Dockerfile 構(gòu)建。
- image:指定 Docker 鏡像,通常是公開(kāi)鏡像(如
nginx),或者是自己構(gòu)建的鏡像。 - ports:定義端口映射,
"宿主機(jī)端口:容器端口"。 - volumes:掛載數(shù)據(jù)卷,將宿主機(jī)的文件夾或文件掛載到容器內(nèi)部,常用于持久化存儲(chǔ)數(shù)據(jù)。
- environment:設(shè)置環(huán)境變量,通常用于傳遞配置參數(shù)。
- networks:定義和配置 Docker 網(wǎng)絡(luò)??梢灾付ǘ鄠€(gè)服務(wù)共享同一個(gè)網(wǎng)絡(luò)。
1.3 常用配置選項(xiàng)
build:從 Dockerfile 構(gòu)建鏡像。build: context: ./app # 指定 Dockerfile 目錄
depends_on:服務(wù)之間的依賴關(guān)系,確保容器啟動(dòng)順序。depends_on: - db
restart:容器退出后的重啟策略。restart: always # 始終重啟容器
2. Docker Compose 使用方法
2.1 創(chuàng)建 Docker Compose 配置文件
首先,創(chuàng)建一個(gè) docker-compose.yml 文件,定義你的應(yīng)用程序中所需的服務(wù)。
- 在你的項(xiàng)目根目錄下,創(chuàng)建一個(gè)
docker-compose.yml文件。 - 在文件中定義所有的服務(wù),如 Web 服務(wù)、數(shù)據(jù)庫(kù)服務(wù)等。
例如,創(chuàng)建一個(gè)包含 nginx 和 MySQL 的示例文件:
services:
web:
image: nginx
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
networks:
- webnet
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
networks:
- webnet
networks:
webnet:
2.2 啟動(dòng)服務(wù)
在
docker-compose.yml文件所在的目錄,打開(kāi)命令行并運(yùn)行以下命令:docker compose up
該命令會(huì)啟動(dòng)所有定義在
docker-compose.yml中的服務(wù)。你可以通過(guò)瀏覽器訪問(wèn)http://localhost:8080來(lái)查看 Nginx 服務(wù)是否已經(jīng)啟動(dòng)。如果你希望容器在后臺(tái)運(yùn)行,可以使用
-d參數(shù):docker compose up -d
這樣,Docker Compose 將會(huì)在后臺(tái)啟動(dòng)所有服務(wù)。
2.3 查看容器狀態(tài)
可以使用以下命令查看正在運(yùn)行的容器狀態(tài):
docker compose ps
輸出示例如下:
Name Command State Ports ------------------------------------------------------------ myapp_db_1 docker-entrypoint.sh mysqld Up 3306/tcp myapp_web_1 /docker-entrypoint.sh nginx Up 0.0.0.0:8080->80/tcp
2.4 查看服務(wù)日志
可以查看各個(gè)服務(wù)的日志信息:
docker compose logs
或者查看特定服務(wù)的日志,例如查看 web 服務(wù):
docker compose logs web
2.5 停止服務(wù)
停止并刪除所有服務(wù)容器及其相關(guān)資源:
docker compose down
如果只想停止服務(wù),而不刪除容器,可以使用:
docker compose stop
2.6 重新構(gòu)建服務(wù)
如果修改了 Dockerfile 或 docker-compose.yml 中的某些內(nèi)容,可以使用 --build 參數(shù)重新構(gòu)建鏡像:
docker compose up --build
這樣會(huì)重新構(gòu)建服務(wù)并啟動(dòng)容器。
3. Docker Compose 常用命令
3.1 docker compose up
啟動(dòng)和運(yùn)行多容器服務(wù)。通過(guò) docker-compose.yml 文件來(lái)啟動(dòng)、停止容器。
docker compose up
常用參數(shù):
-d:后臺(tái)運(yùn)行容器。--build:在啟動(dòng)之前構(gòu)建鏡像。--force-recreate:強(qiáng)制重新創(chuàng)建容器。
3.2 docker compose down
停止并刪除所有容器、網(wǎng)絡(luò)、卷等資源。
docker compose down
常用參數(shù):
--volumes或-v:同時(shí)刪除數(shù)據(jù)卷。--remove-orphans:刪除與當(dāng)前服務(wù)不相關(guān)的容器。
3.3 docker compose ps
查看當(dāng)前運(yùn)行的容器和服務(wù)狀態(tài)。
docker compose ps
輸出包括每個(gè)容器的名稱、狀態(tài)、端口等信息。
3.4 docker compose logs
查看服務(wù)日志。默認(rèn)情況下,顯示所有服務(wù)的日志。
docker compose logs
查看特定服務(wù)的日志:
docker compose logs <service-name>
例如,查看 web 服務(wù)的日志:
docker compose logs web
3.5 docker compose exec
在正在運(yùn)行的容器內(nèi)執(zhí)行命令。比如,進(jìn)入 web 容器的 bash 環(huán)境:
docker compose exec web bash
3.6 docker compose stop
停止所有運(yùn)行中的服務(wù)容器,但不會(huì)刪除它們。停止后可以通過(guò) docker compose start 恢復(fù)服務(wù)。
docker compose stop
3.7 docker compose build
手動(dòng)構(gòu)建鏡像。如果在 docker-compose.yml 中使用了 build 選項(xiàng),可以使用此命令來(lái)重新構(gòu)建鏡像。
docker compose build
4. 總結(jié)
Docker Compose 是一個(gè)功能強(qiáng)大的工具,適用于本地開(kāi)發(fā)、測(cè)試和多容器應(yīng)用的管理。通過(guò)一個(gè)簡(jiǎn)單的 docker-compose.yml 文件,你可以定義、構(gòu)建并管理多個(gè)容器應(yīng)用,避免了手動(dòng)管理多個(gè) Docker 容器的復(fù)雜性。本文介紹了如何配置 Docker Compose 文件、使用流程和常用命令,幫助你更高效地使用 Docker Compose 來(lái)部署和管理容器化應(yīng)用。
常見(jiàn)的 Docker Compose 命令如 up、down、ps、logs 等,可以幫助你快速管理和調(diào)試多容器應(yīng)用。此外,Compose 的強(qiáng)大功能還包括服務(wù)依賴、環(huán)境變量、卷管理等,極大地提升了容器化應(yīng)用的開(kāi)發(fā)效率和可維護(hù)性。
到此這篇關(guān)于Docker Compose 配置指南小結(jié)的文章就介紹到這了,更多相關(guān)Docker Compose 配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker常用容器啟動(dòng)docker-compose.yml配置文件使用
- 關(guān)于immich?docker-compose.yml配置文件詳解
- 在docker-compose.yml文件中配置容器的環(huán)境變量方式
- docker-compose.yml參數(shù)的用法(配置文件)
- 使用docker?compose快速配置一組容器服務(wù)詳解
- Springboot使用docker-compose實(shí)現(xiàn)動(dòng)態(tài)配置過(guò)程
- docker-compose配置并部署redis服務(wù)的實(shí)現(xiàn)
- 詳解Docker Compose配置文件參數(shù)
- Docker compose配置文件寫(xiě)法及命令使用示例
- docker-compose安裝yml文件配置方式
- docker compose 一鍵部署分布式配置中心Apollo的過(guò)程詳解
- docker-compose部署配置jenkins的詳細(xì)教程
相關(guān)文章
Docker使用Dockerfile來(lái)創(chuàng)建鏡像
本篇文章主要介紹了Docker使用Dockerfile來(lái)創(chuàng)建鏡像,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
完美解決Windows10下無(wú)法對(duì)docker容器進(jìn)行端口訪問(wèn)的操作
這篇文章主要介紹了完美解決Windows10下無(wú)法對(duì)docker容器進(jìn)行端口訪問(wèn)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
解決docker容器啟動(dòng)后馬上退出的問(wèn)題
這篇文章主要介紹了解決docker容器啟動(dòng)后馬上退出的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
docker nginx + https 子域名配置詳細(xì)教程
這篇文章主要介紹了docker nginx + https 子域名配置詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
ssh 直接登錄docker容器的操作方法(不用通過(guò)宿主機(jī)進(jìn)入)
這篇文章主要介紹了ssh 直接登錄docker容器的操作方法(不用通過(guò)宿主機(jī)進(jìn)入),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-06-06
docker-compose部署redis報(bào)錯(cuò)ERR Client sent AUTH,&
這篇文章主要介紹了docker-compose部署redis報(bào)錯(cuò)ERR Client sent AUTH, but no password is set問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-10-10
詳解利用ELK搭建Docker容器化應(yīng)用日志中心
這篇文章主要介紹了詳解利用ELK搭建Docker容器化應(yīng)用日志中心,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
docker 容器自定義 hosts 網(wǎng)絡(luò)訪問(wèn)操作
這篇文章主要介紹了docker 容器自定義 hosts 網(wǎng)絡(luò)訪問(wèn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03

