文章目录
- 常用命令
- 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/nginx
depends_on: #指定 web 服务依赖于 db 服务,这意味着在启动 web 服务之前,Docker Compose 会先启动 db 服务。
- db
networks:
- blognetwork
db:
build: . #指定 db 服务使用当前目录下的 Dockerfile 来构建镜像。
volumes: #定义数据卷,进行具名挂载
- db-data:/var/lib/mysql
- db-config:/etc/mysql
- db-logs:/var/log/mysql
ports: #进行端口映射
- "3306:3306"
networks: #db 服务连接到 blognetwork 网络。
- blognetwork
volumes:
db-data:
db-config:
db-logs:
networks:
blognetwork:
driver: bridge
使用命令docker-compose up -d
看到两个容器成功运行