Docker 中 YML 文件是什么?
Docker中YML文件一般是指Docker默認(rèn)的模板文件“docker-compose.yml”,該文件用來(lái)定義的每個(gè)服務(wù)都必須通過(guò)image指令指定鏡像,或使用Dockerfile的build指令進(jìn)行自動(dòng)構(gòu)建。
Compose文件
Compose文件是一個(gè)定義服務(wù)services、網(wǎng)絡(luò)networks和卷volumes的YAML文件,默認(rèn)路徑是./docker-compose.yml,可使用.yml或.yaml作為文件擴(kuò)展名。
服務(wù)services定義包含應(yīng)用于為該服務(wù)啟動(dòng)的每個(gè)容器的配置,類(lèi)似傳遞命令行參數(shù)一樣docker container create。同樣,網(wǎng)絡(luò)networks和卷volumes的定義類(lèi)似于docker network create和docker volume create。正如docker container create在Dockerfile指定選項(xiàng),如CMD、EXPOSE、VOLUME、ENV,在默認(rèn)情況下,不需要在docker-compose.yml配置中再次指定??梢允褂肂ash類(lèi)${VARIABLE}語(yǔ)法在配置值中使用環(huán)境變量。
version: "3" services: redis: image: redis:alpine ports: - "6379" networks: - frontend deploy: replicas: 2 update_config: parallelism: 2 delay: 10s restart_policy: condition: on-failure db: image: postgres:9.4 volumes: - db-data:/var/lib/postgresql/data networks: - backend deploy: placement: constraints: [node.role == manager] vote: image: dockersamples/examplevotingapp_vote:before ports: - 5000:80 networks: - frontend depends_on: - redis deploy: replicas: 2 update_config: parallelism: 2 restart_policy: condition: on-failure result: image: dockersamples/examplevotingapp_result:before ports: - 5001:80 networks: - backend depends_on: - db deploy: replicas: 1 update_config: parallelism: 2 delay: 10s restart_policy: condition: on-failure worker: image: dockersamples/examplevotingapp_worker networks: - frontend - backend deploy: mode: replicated replicas: 1 labels: [APP=VOTING] restart_policy: condition: on-failure delay: 10s max_attempts: 3 window: 120s placement: constraints: [node.role == manager] visualizer: image: dockersamples/visualizer:stable ports: - "8080:8080" stop_grace_period: 1m30s volumes: - "/var/run/docker.sock:/var/run/docker.sock" deploy: placement: constraints: [node.role == manager] networks: frontend: backend: volumes: db-data:
推薦教程:《Docker》