![cover](https://blog-images-1304155699.cos.ap-nanjing.myqcloud.com/20240526163403.png)
docker-compose.yml 配置关键字
本文最后更新于 2024-05-26,文章内容可能已经过时。
1、关于配置文件名
默认:docker-compose.yml
自定义例如:web.yml
启动命令就应该加参数:-f
docker-compose -f web.yml up -d
2、文件包含了4个一级Key
Version:
services:
networks:
volumes:
2-1、Version
首先确认docker 版本,运行下面指令,返回值即为版本号
docker -v
只要docker版本大于19.63就都可以写成3.8或者3,通常写3即可
2-2、services
定义服务容器的关键内容(最关键内容),包含以下几个内容
- image
iamge:naginx:latest //Dockerhub官方镜像
image:nginx:1.24.0 //定制版本
birnami/nginx:latest //使用某个用户在Docker-Hub发布的镜像
- build
构建镜像的路径和参数
如果你想从一个Dockerfile构建镜像
而不是使用预构建的镜像
可以使用此选项
- ports
端口映射
将容器内的端口映射到宿主机的端口
例如:“8080:80”
表示将容器的80端口
映射到宿主机的80端口
- volumes
卷挂载
用于数据持续久化和数据共享
dbdata:/var/lib/mysql
格式也是冒号左右分开,右边是容器内部的目录,冒号左边是要映射的目录或者挂在卷
- environment
环境变量
可以设置环境变量供容器内应用使用
比如在配置mysql数据库时,
初始化时要进行root密码的设置
就可以通过环境变量来给出
例如:
environment:
MYSQL_ROOT_PASSWORD:admin
- depends_on
依赖关系
指定服务之间的依赖关系,
确保服务按顺序启动
- command
容器启动后执行的命令
- networks
网络设置
定义服务所使用的网络
- restart:always
随宿主机启动
2-3、networks
常见驱动类型
bridge、overlay、host
格式
driver:host
2-4、volumes
- 外部卷
External Volumes
外部卷,已存在的卷
由Docker外部创建和管理
可以被容器使用
示例:external:ture
- 命名卷
Named Volumes
随容器服务创建过程中,创建的卷
有固定名称存储在宿主机的预定义路径下
示例:
volumes:
dbdata:
- 匿名卷
Anonymous Volumes
自动生成的没有指定名称的卷。
用于临时存储
示例:
/var/lib/mysql
- 主机卷
Host Volumes
将宿主机的文件系统直接挂载在容器中
示例:
/path/in/host:/path/in/container
- 感谢你赐予我前进的力量