赞
踩
docker-compose.yml
是 Docker Compose 使用的配置文件,用于定义和运行多容器的 Docker 应用程序。该文件采用 YAML 格式,允许用户指定应用程序所需的服务、网络、卷和其他配置。
下面是一个简单的 docker-compose.yml
文件示例,并解释其中的各个部分:
- version: '3'
- services:
- web:
- build: .
- ports:
- - "5000:5000"
- db:
- image: postgres
- redis:
- image: redis
-
- volumes:
- db-data:
-
- networks:
- default:
- driver: bridge
version 字段指定了 Compose 文件的版本。这决定了文件中可以使用的配置选项。在上面的例子中,版本是 '3'
services 字段下定义了应用程序中每个容器实例(或称为服务)的配置。每个服务都有自己的名称(例如 web、db、redis)和一组配置选项
build: 指定 Dockerfile 所在文件夹的路径(相对于 docker-compose.yml 文件的位置)。Docker Compose 会构建这个 Dockerfile 并生成一个镜像。
image: 使用已经存在的 Docker 镜像。
ports: 映射宿主机的端口到容器的端口。格式为 "宿主机端口:容器端口"。
volumes: 挂载卷,用于持久化数据或共享数据。
networks: 指定容器要使用的网络。
environment: 设置环境变量。
command: 覆盖容器启动后默认执行的命令。
depends_on: 定义服务之间的依赖关系,确保服务的启动顺序。
volumes 字段用于定义命名卷,这些卷可以在多个服务之间共享,并且可以在容器之间持久化数据
networks 字段允许用户定义自定义网络,以便服务可以相互通信。在这个例子中,定义了一个默认的 bridge 网络
- version: "3" # compose版本,都是3
-
- services: # 有几个实例
- microService: #名称不冲突就行
- image: zzyy_docker:1.6 #你拉取的镜像版本 镜像名称:版本号
- container_name: ms01 #容器的名称
- ports:
- - "6001:6001" #端口号(对外映射端口:容器内端口)
- volumes:
- - /app/microService:/data #容器数据卷路径映射(宿主机路径:容器内路径)
- networks:
- - atguigu_net #网络,名称在下面networks节点
- depends_on: #此实例依赖于redis与mysql
- - redis
- - mysql
-
- redis:
- image: redis:6.0.8
- ports:
- - "6379:6379"
- volumes:
- - /app/redis/redis.conf:/etc/redis/redis.conf
- - /app/redis/data:/data
- networks:
- - atguigu_net
- command: redis-server /etc/redis/redis.conf #linux命令
-
- mysql:
- image: mysql:5.7
- environment: #设置容器的环境变量
- MYSQL_ROOT_PASSWORD: '123456'
- MYSQL_ALLOW_EMPTY_PASSWORD: 'no'
- MYSQL_DATABASE: 'db2021'
- MYSQL_USER: 'zzyy'
- MYSQL_PASSWORD: 'zzyy123'
- ports:
- - "3306:3306"
- volumes:
- - /app/mysql/db:/var/lib/mysql
- - /app/mysql/conf/my.cnf:/etc/my.cnf
- - /app/mysql/init:/docker-entrypoint-initdb.d
- networks:
- - atguigu_net
- command: --default-authentication-plugin=mysql_native_password #解决外部无法访问
-
- networks:
- atguigu_net: #定义网络:等于是docker network create atguigu_net
docker-compose -h | 查看帮助 |
docker-compose up | 启动所有docker-compose服务 |
docker-compose up -d | 启动所有docker-compose服务并后台运行 |
docker-compose down | 停止并删除容器、网络、卷、镜像。 |
docker-compose exec | yml里面的服务id,进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bash |
docker-compose ps | 展示当前docker-compose编排过的运行的所有容器 |
docker-compose top | 展示当前docker-compose编排过的容器进程 |
docker-compose logs | yml里面的服务id,查看容器输出日志 |
dokcer-compose config | 检查配置 |
dokcer-compose config -q | 检查配置,有问题才有输出 |
docker-compose restart | 重启服务 |
docker-compose start | 启动服务 |
docker-compose stop | 停止服务 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。