docker compose文件的语法说明
Compose specification
基本语法结构
version: "3.8"services: # 容器 servicename: # 服务名字,这个名字也是内部 bridge网络可以使用的 DNS name image: # 镜像的名字 command: # 可选,如果设置,则会覆盖默认镜像里的 CMD命令 environment: # 可选,相当于 docker run里的 --env volumes: # 可选,相当于docker run里的 -v networks: # 可选,相当于 docker run里的 --network ports: # 可选,相当于 docker run里的 -pservicename2:volumes: # 可选,相当于 docker volume createnetworks: # 可选,相当于 docker network create
以 Python Flask + Redis练习:为例子,改造成一个docker-compose文件
docker image pull redisdocker image build -t flask-demo .# create networkdocker network create -d bridge demo-network# create containerdocker container run -d --name redis-server --network demo-network redisdocker container run -d --network demo-network --name flask-demo --env REDIS_HOST=redis-server -p 5000:5000 flask-demo
docker-compose.yml 文件如下
version: "3.8"services: flask-demo: image: flask-demo:latest environment: - REDIS_HOST=redis-server networks: - demo-network ports: - 8080:5000 redis-server: image: redis:latest networks: - demo-networknetworks: demo-network:
启动 docker-compose (镜像下载完成后执行)
# 前台运行docker-compose up # 后台运行dockers-compose up -d# 查看logsdocker-compose logs# 持续动态的查看docker-compose logs -f
docker-compose 语法版本
向后兼容