目录
引言
Docker Compose的前身是Fig,它是一个定义及运行多个Docker容器的工具,通过Compose,不需要使用shell脚本来启动容器,而使用YAML文件来配置应用程序需要的所有服务,然后使用一个命令,根据 YAML 的文件配置创建并启动所有服务,Docker Compose非常适合组合使用多个容器进行开发的场景。
Consul是HashiCorp公司推出的开源工具,Consul由Go语言开发,部署起来非常容易,只需要极少的可执行程序和配置文件,具有绿色、轻量级的特点。Consul是分布式的、高可用的、可横向扩展的用于实现分布式系统的服务发现与配置。
一、Docker Compose概述
1、Docker Compose配置常用字段
字段 |
描述 |
build dockerfile context |
指定Dockerfile文件名构建镜像上下文路径 |
image |
指定镜像 |
command |
执行命令,覆盖默认命令 |
container name |
指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale |
deploy |
指定部署和运行服务相关配置,只能在Swarm模式使用 |
environment |
添加环境变量 |
networks |
加入网络 |
ports |
暴露容器端口,与-p相同,但端口不能低于60 |
volumes |
挂载宿主机路径或命令卷 |
restart |
重启策略,默认no,always,no-failure,unless-stoped |
hostname |
容器主机名 |
2、YAML
(1)YAML(YAML Ain’t a Markup Language)是一个可读性高,用来表达数据序列化的格式.
(2)文件格式及编写注意事项
不支持制表符tab键缩进,需要使用空格缩进
通常开头缩进2个空格
字符后缩进1个空格,如冒号、逗号、横杆
用#号注释
如果包含特殊字符用单引号引起来
布尔值必须用引号括起来
3、yml文件配置指令参考
version:指定此yml文件基于的compase的版本
services:指定创建容器的服务选项
服务名:例如nginx等
hostname:容器主机名
build :指定构建镜像上下文路径
context:上下文路径
dockerfile:指定构建镜像的 Dockerfile 文件名
ports:暴露容器端口,与-p相同,但端口不能低于60;例如:- 1234:80
networks:加入顶级networks下配置的网络
deploy:指定部署和运行服务相关配置,只能在Swarm模式使用
volumes:挂载宿主机路径或命令卷
image:指定容器运行的镜像
command:执行命令,覆盖默认命令
container_name:指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale(扩展)
environment:添加环境变量
restart:重启策略,定义是否重启容器;no(默认,不重启),always(总是重启),no-failure(退出状态非0时重启),unless-stoped(容器退出时,忽略守护进程启动前停止的容器)
networks:配置网