Docker Compose 配置指南小結(jié)
Docker Compose 是一個用于定義和運行多容器 Docker 應用的工具。通過一個 docker-compose.yml
文件,你可以輕松地定義應用中的服務、網(wǎng)絡、存儲卷等資源,并用一個命令啟動所有服務。Docker Compose 主要用于簡化多容器應用的開發(fā)、測試和部署流程。
本文將詳細介紹 Docker Compose 的配置、常用命令,以及使用方法的具體示例。
1. Docker Compose 配置
Docker Compose 的核心配置文件是 docker-compose.yml
,它遵循 YAML 格式來定義應用中的多個服務。
1.1 基本配置結(jié)構(gòu)
一個最基礎(chǔ)的 docker-compose.yml
文件結(jié)構(gòu)通常包括以下部分:
services: # 定義服務 web: image: nginx # 使用官方 nginx 鏡像 ports: - "8080:80" # 將宿主機的8080端口映射到容器的80端口 volumes: - ./html:/usr/share/nginx/html # 將本地html文件夾掛載到容器的html目錄 networks: - webnet # 使用名為 webnet 的網(wǎng)絡 db: image: mysql:5.7 # 使用 MySQL 鏡像 environment: MYSQL_ROOT_PASSWORD: example # 設置MySQL root 密碼 networks: - webnet # 使用同樣的網(wǎng)絡 networks: webnet: # 定義 webnet 網(wǎng)絡
1.2 docker-compose.yml 的各部分
- services:定義服務,每個服務可以有一個容器。每個服務都可以使用一個 Docker 鏡像,或者從 Dockerfile 構(gòu)建。
- image:指定 Docker 鏡像,通常是公開鏡像(如
nginx
),或者是自己構(gòu)建的鏡像。 - ports:定義端口映射,
"宿主機端口:容器端口"
。 - volumes:掛載數(shù)據(jù)卷,將宿主機的文件夾或文件掛載到容器內(nèi)部,常用于持久化存儲數(shù)據(jù)。
- environment:設置環(huán)境變量,通常用于傳遞配置參數(shù)。
- networks:定義和配置 Docker 網(wǎng)絡??梢灾付ǘ鄠€服務共享同一個網(wǎng)絡。
1.3 常用配置選項
build
:從 Dockerfile 構(gòu)建鏡像。build: context: ./app # 指定 Dockerfile 目錄
depends_on
:服務之間的依賴關(guān)系,確保容器啟動順序。depends_on: - db
restart
:容器退出后的重啟策略。restart: always # 始終重啟容器
2. Docker Compose 使用方法
2.1 創(chuàng)建 Docker Compose 配置文件
首先,創(chuàng)建一個 docker-compose.yml
文件,定義你的應用程序中所需的服務。
- 在你的項目根目錄下,創(chuàng)建一個
docker-compose.yml
文件。 - 在文件中定義所有的服務,如 Web 服務、數(shù)據(jù)庫服務等。
例如,創(chuàng)建一個包含 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 啟動服務
在
docker-compose.yml
文件所在的目錄,打開命令行并運行以下命令:docker compose up
該命令會啟動所有定義在
docker-compose.yml
中的服務。你可以通過瀏覽器訪問http://localhost:8080
來查看 Nginx 服務是否已經(jīng)啟動。如果你希望容器在后臺運行,可以使用
-d
參數(shù):docker compose up -d
這樣,Docker Compose 將會在后臺啟動所有服務。
2.3 查看容器狀態(tài)
可以使用以下命令查看正在運行的容器狀態(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 查看服務日志
可以查看各個服務的日志信息:
docker compose logs
或者查看特定服務的日志,例如查看 web
服務:
docker compose logs web
2.5 停止服務
停止并刪除所有服務容器及其相關(guān)資源:
docker compose down
如果只想停止服務,而不刪除容器,可以使用:
docker compose stop
2.6 重新構(gòu)建服務
如果修改了 Dockerfile
或 docker-compose.yml
中的某些內(nèi)容,可以使用 --build
參數(shù)重新構(gòu)建鏡像:
docker compose up --build
這樣會重新構(gòu)建服務并啟動容器。
3. Docker Compose 常用命令
3.1 docker compose up
啟動和運行多容器服務。通過 docker-compose.yml
文件來啟動、停止容器。
docker compose up
常用參數(shù):
-d
:后臺運行容器。--build
:在啟動之前構(gòu)建鏡像。--force-recreate
:強制重新創(chuàng)建容器。
3.2 docker compose down
停止并刪除所有容器、網(wǎng)絡、卷等資源。
docker compose down
常用參數(shù):
--volumes
或-v
:同時刪除數(shù)據(jù)卷。--remove-orphans
:刪除與當前服務不相關(guān)的容器。
3.3 docker compose ps
查看當前運行的容器和服務狀態(tài)。
docker compose ps
輸出包括每個容器的名稱、狀態(tài)、端口等信息。
3.4 docker compose logs
查看服務日志。默認情況下,顯示所有服務的日志。
docker compose logs
查看特定服務的日志:
docker compose logs <service-name>
例如,查看 web
服務的日志:
docker compose logs web
3.5 docker compose exec
在正在運行的容器內(nèi)執(zhí)行命令。比如,進入 web
容器的 bash 環(huán)境:
docker compose exec web bash
3.6 docker compose stop
停止所有運行中的服務容器,但不會刪除它們。停止后可以通過 docker compose start
恢復服務。
docker compose stop
3.7 docker compose build
手動構(gòu)建鏡像。如果在 docker-compose.yml
中使用了 build
選項,可以使用此命令來重新構(gòu)建鏡像。
docker compose build
4. 總結(jié)
Docker Compose 是一個功能強大的工具,適用于本地開發(fā)、測試和多容器應用的管理。通過一個簡單的 docker-compose.yml
文件,你可以定義、構(gòu)建并管理多個容器應用,避免了手動管理多個 Docker 容器的復雜性。本文介紹了如何配置 Docker Compose 文件、使用流程和常用命令,幫助你更高效地使用 Docker Compose 來部署和管理容器化應用。
常見的 Docker Compose 命令如 up
、down
、ps
、logs
等,可以幫助你快速管理和調(diào)試多容器應用。此外,Compose 的強大功能還包括服務依賴、環(huán)境變量、卷管理等,極大地提升了容器化應用的開發(fā)效率和可維護性。
到此這篇關(guān)于Docker Compose 配置指南小結(jié)的文章就介紹到這了,更多相關(guān)Docker Compose 配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- docker常用容器啟動docker-compose.yml配置文件使用
- 關(guān)于immich?docker-compose.yml配置文件詳解
- 在docker-compose.yml文件中配置容器的環(huán)境變量方式
- docker-compose.yml參數(shù)的用法(配置文件)
- 使用docker?compose快速配置一組容器服務詳解
- Springboot使用docker-compose實現(xiàn)動態(tài)配置過程
- docker-compose配置并部署redis服務的實現(xiàn)
- 詳解Docker Compose配置文件參數(shù)
- Docker compose配置文件寫法及命令使用示例
- docker-compose安裝yml文件配置方式
- docker compose 一鍵部署分布式配置中心Apollo的過程詳解
- docker-compose部署配置jenkins的詳細教程
相關(guān)文章
詳解使用 Docker 構(gòu)建 LNMP 環(huán)境
本篇文章主要介紹了使用 Docker 構(gòu)建 LNMP 環(huán)境,詳細的介紹了配置LNMP 環(huán)境的步驟。具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03

Ubuntu?環(huán)境下安裝?Docker環(huán)境詳解

Docker如何多步構(gòu)建生成dubbo-admin鏡像詳解

Docker使用編寫dockerfile啟動node.js應用