文章目錄
- 常用命令
- docker-compose是什么
- yml配置指令詳解
- version
- services
- image
- build
- command
- ports
- volumes
- depends_on
- docker-compose.yml文件編寫
常用命令
命令 | 說明 |
---|---|
docker-compose up | 啟動所有docker-compose服務,通常加上-d選項,讓其運行在后臺 |
docker-compose down | 停止并刪除容器、網絡 |
docker-compose start | 啟動服務 |
docker-compose stop | 停止服務 |
docker-comopse restart | 重啟服務 |
docker-compose是什么
可以管理多個docker容器組成一個應用,需要定義一個YAML格式的配置文件docker-compose.yml寫好多個容器之間的調用關系,然后一個命令,就能同時啟動或停止這些容器
yml配置指令詳解
version
在文件的頂部,需要指定docker-compose的版本。這個版本應該與你安裝的docker-compose版本兼容。例如version: '3.8'
。
services
定義了一組服務,每個服務將在一個容器中運行。
image
指定服務使用的Docker鏡像。可以是公共鏡像,也可以是私有鏡像。例如image: nginx:latest
。
build
指定構建服務的Dockerfile所在的上下文路徑,例如build: ./web
。
version: "3.7"
services:webapp:build: ./web
command
覆蓋容器啟動后默認執行的命令。
ports
映射容器端口到宿主機的指令。格式為<宿主機端口>:<容器端口>。
volumes
進行數據卷的掛載
depends_on
指定服務之間的依賴關系,確保依賴服務先啟動。
docker-compose.yml文件編寫
services:web:image: nginx:latest #指定 web 服務使用的鏡像是 nginx:latest,即最新的官方 Nginx 鏡像。ports:- "80:80"volumes:- /root/website/nginx.conf:/etc/nginx/nginx.conf #進行數據卷的簡單掛載- /root/website/web-root:/usr/share/nginx/html- /root/website/web-logs:/var/log/nginxdepends_on: #指定 web 服務依賴于 db 服務,這意味著在啟動 web 服務之前,Docker Compose 會先啟動 db 服務。- dbnetworks:- blognetworkdb:build: . #指定 db 服務使用當前目錄下的 Dockerfile 來構建鏡像。volumes: #定義數據卷,進行具名掛載- db-data:/var/lib/mysql- db-config:/etc/mysql- db-logs:/var/log/mysqlports: #進行端口映射- "3306:3306"networks: #db 服務連接到 blognetwork 網絡。- blognetwork
volumes:db-data:db-config:db-logs:
networks: blognetwork:driver: bridge
使用命令docker-compose up -d
看到兩個容器成功運行