Docker从入门到精通之Docker Compose( 二 )

healthcheck用于检测 docker 服务是否健康运行 。
healthcheck:test: ["CMD", "curl", "-f", "http://localhost"] # 设置检测程序interval: 1m30s# 设置检测间隔timeout: 10s # 设置检测超时时间retries: 3 # 设置重试次数start_period: 40s # 启动后,多少秒开始启动检测程序image指定容器运行的镜像
image: redis:5labels设置容器标签
labels:com.example.description: "Accounting webapp"com.example.department: "Finance"labels:- "com.example.description=Accounting webapp"- "com.example.department=Finance"links连接到另一个容器的网络,简单将就是让容器相互连通
web:links:- db- db:database- redislogging服务的日志记录配置,driver:指定服务容器的日志记录驱动程序,默认值为json-file 。有以下三个选项
driver: "json-file"driver: "syslog"driver: "none"仅在 json-file 驱动程序下,可以使用以下参数,限制日志得数量和大小 。
logging:driver: json-fileoptions:max-size: "200k" # 单个文件大小为200kmax-file: "10" # 最多10个文件syslog 驱动程序下,可以使用 syslog-address 指定日志接收地址 。
logging:driver: syslogoptions:syslog-address: "tcp://192.168.0.42:123"network_mode设置网络模式,格式如下:
network_mode: "bridge" #桥接模式network_mode: "host"network_mode: "none"network_mode: "service:[service name]"networks配置容器连接的网络
services:some-service:networks:- some-network- other-networknetworks:some-network:# Use a custom driverdriver: custom-driver-1other-network:# Use a custom driver which takes special optionsdriver: custom-driver-2services:frontend:image: awesome/webappnetworks:- front-tier- back-tiermonitoring:image: awesome/monitoringnetworks:- adminbackend:image: awesome/backendnetworks:back-tier:aliases:- databaseadmin:aliases:- MySQLnetworks:front-tier:back-tier:admin:ipv4_address, ipv6_address指定ip地址
services:frontend:image: awesome/webappnetworks:front-tier:ipv4_address: 172.16.238.10ipv6_address: 2001:3984:3989::10networks:front-tier:ipam:driver: defaultconfig:- subnet: "172.16.238.0/24"- subnet: "2001:3984:3989::/64"ports端口映射,映射主机与容器端口,格式:Host:ontainer
ports:- "5000:5000"restart容器重启策略
restart: "no"restart: alwaysrestart: on-failurerestart: unless-stoppedsecrets存储敏感数据,比如密码
services:frontend:image: awesome/webappsecrets:- server-certificatesecrets:server-certificate:file: ./server.certvolumes将主机数据卷挂载到容器
services:db:image: postgres:latestvolumes:- "/localhost/postgres.sock:/var/run/postgres/postgres.sock"- "/localhost/data:/var/lib/postgresql/data"working_dir覆盖容器工作目录
Volumes 顶级目录services:backend:image: awesome/databasevolumes:- db-data:/etc/databackup:image: backup-servicevolumes:- db-data:/var/lib/backup/datavolumes:db-data:Networks 顶级目录services:frontend:image: awesome/webappnetworks:- front-tier- back-tiernetworks:front-tier:back-tier:driver: bridgedocker-compose 命令$ docker-compose --helpDefine and run multi-container applications with Docker.Usage:docker-compose [-f <arg>...] [--profile <name>...] [options] [COMMAND] [ARGS...]docker-compose -h|--helpOptions:-f, --file FILESpecify an alternate compose file(default: docker-compose.yml)-p, --project-name NAMESpecify an alternate project name(default: directory name)--profile NAMESpecify a profile to enable--verboseShow more output--log-level LEVELSet log level (DEBUG, INFO, WARNING, ERROR, CRITICAL)--no-ansiDo not print ANSI control characters-v, --versionPrint version and exit-H, --host HOSTDaemon socket to connect to--tlsUse TLS; implied by --tlsverify--tlscacert CA_PATHTrust certs signed only by this CA--tlscert CLIENT_CERT_PATHPath to TLS certificate file--tlskey TLS_KEY_PATHPath to TLS key file--tlsverifyUse TLS and verify the remote--skip-hostname-checkDon't check the daemon's hostname against thename specified in the client certificate--project-directory PATHSpecify an alternate working directory(default: the path of the Compose file)--compatibilityIf set, Compose will attempt to convert deploykeys in v3 files to their non-Swarm equivalentCommands:buildBuild or rebuild servicesbundleGenerate a Docker bundle from the Compose fileconfigValidate and view the Compose filecreateCreate servicesdownStop and remove containers, networks, images, and volumeseventsReceive real time events from containersexecExecute a command in a running containerhelpGet help on a commandimagesList imageskillKill containerslogsView output from containerspausePause servicesportPrint the public port for a port bindingpsList containerspullPull service imagespushPush service imagesrestartRestart servicesrmRemove stopped containersrunRun a one-off commandscaleSet number of containers for a servicestartStart servicesstopStop servicestopDisplay the running processesunpauseUnpause servicesupCreate and start containersversionShow the Docker-Compose version information


推荐阅读