Docker-compose简介
1.Docker-compose是docker官方的开源项目,负责实现对docker容器集群的快速编排,写好多个容器间的调用关系,只有一个命令就能同时启动/关闭这些容器,编写yaml文件,用一条命令进行管理容器,一键部署
2.docker-compose,使用yaml或者yml作为文件扩展名
Docker-compose用来实现Docker容器快速编排
通过 Docker-Compose ,不需要使用shell脚本来启动容器,而使用 YAML 文件来配置应用程序需要的所有服务,然后使用一个命令,根据 YAML 的文件配置创建并启动所有服务。
Docker-compose模板文件简介
Compose允许用户通过一个docker-compose.yml模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目。
Compose模板文件默认路径是当前目录下的docker-compose.yml,可以使用.yml或.yaml作为文件扩展名。
Docker-Compose标准模板文件应该包含version、services、networks 三大部分,最关键的是services和networks两个部分。
Docker-compose编排结构
工程(project):一个过程包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖
服务(service):一个服务当中可包含多个容器实例
容器(container)

Docker Compose 的核心就是其配置文件,采用 YAML 格式,默认为 docker-compose.yml 。
YAML模板文件语法
1.默认的模板文件是docker-compose.yml,其中定义的每个服务都必须通过image指令指定镜像,也可以通过build指令(需要Dockerfile)来自动构建。
2.其他大部分都跟docker run中类似,如果使用build指令,在Dockerfile中设置的选项(例如:CMD,EXPOSE,ENV等)将自动被获取,无需在docker-compose.yml中再次被设置
3.yml文件还行后的缩进,不允许使用tab键字符,只能使用空格,而空格的数量也有要求,经过实际测试,发现每一行增加一个空格用于缩进是正常的。
Docker-compose语法说明
image:指定镜像名称或ID,如果镜像不存在,compose将尝试从互联网上拉取这个镜像

build:指定Dockerfile所在文件夹路径,compose将会利用它自行构建这个镜像,然后使用这个镜像
build:./dir
command:覆盖容器启动后默认执行的命令
command: bundle exec thin -p 3000
links:链接到其他服务容器,使用服务名称(同时作为别名)或服务别名

external_links:链接到docker-compose.yaml外部的容器,甚至并非是compose管理的容器,参数与links类似

ports:暴露端口信息,或者仅指定容器的端口(宿主机将会随机分配地址)

expose:暴露端口,与ports不同的是只可以暴露端口而不能映射到主机,只供外部服务连接使用,仅可以指定内部端口为参数

volumes:设置挂载卷的路径,可以设置宿主机路径(host:container)或加上访问模式(host:container:ro),ro就是readonly只读

Volumes_from:挂载另一个服务或容器的所有数据卷

environment:设置环境变量,可以属于数组或字典两种格式

Depends_on:依赖服务,优先启动

deploy:部署相关的配置都在这个节点上
使用yaml需要注意的事项
● 使用缩进表示层级关系,不支持制表符tab键缩进,只能使用空格键缩进;
● 缩进长度没有限制,只要元素对齐就表示这些元素属于一个层级
● 通常开头缩进2个空格;
● 字符后缩进1个空格,如冒号:空格 逗号,空格 横杠-空格文本之间的空格>;
● 用#号注释;
● 如果包含特殊字符用单引号' '引起来;
● 布尔值必须用引号" "括起来;
● 区分大小写
● 字符串可以不用引号标注
Docker-compose常用命令
docker-compose -h 查看帮助
docker-compose build 容器名 构建镜像
docker-compose up 启动所有docker-compose服务
docker-compose up -d 启动所有docker-compose服务并后台运行
docker-compose down 停止并删除容器、网络、卷、镜像
docker-compose exec yaml里面的服务ID 进入服务内部
docker-compose ps 展示当前编排过的运行的所有容器
docker-compose top 展示当前编排过的容器进程
docker-compose logs yaml里面的服务ID 查看容器输出的日志
docker-compose config 检查配置
docker-compose config -q 检查配置,有问题才输出
docker-compose rm 容器名 删除容器
docker-compose restart 重启服务
docker-compose start 启动服务
docker-compose stop 停止服务
884

被折叠的 条评论
为什么被折叠?



