links:
- db
- db:mysql
- redis使用了别名将自动会在容器的/etc/hosts文件里创建相应记录:
172.17.2.186 db
172.17.2.186 mysql
172.17.2.187 redis所以我们在容器里就可以直接使用别名作为服务的主机名。
ports
用于暴露端口。同
docker run -p。示例:
ports:
- "3000"
- "8000:8000"
- "49100:22"
- "127.0.0.1:8001:8001"expose
expose提供container之间的端口访问,不会暴露给主机使用。同docker run –expose。
expose:
- "3000"
- "8000"volumes
挂载数据卷。同
docker run -v。示例:
volumes:
- /var/lib/mysql
- cache/:/tmp/cache
- ~/configs:/etc/configs/:ro
volumes_from
挂载数据卷容器,挂载是容器。同docker
run --volumes-from。示例:
volumes_from:
- service_name
- service_name:ro
- container:container_name
- container:container_name:rw
container:container_name格式仅支持
version 2。environment
添加环境变量。同
docker run -e。可以是数组或者字典格式:
environment:
RACK_ENV: development
SESSION_SECRET:environment:
- RACK_ENV=development
- SESSION_SECRET
depends_on
用于指定服务依赖,一般是mysql、redis等。
指定了依赖,将会优先于服务创建并启动依赖。
links也可以指定依赖。external_links
链接搭配
docker-compose.yml文件或者
Compose之外定义的服务,通常是提供共享或公共服务。格式与links相似:
external_links:
- redis_1
- project_db_1:mysql
- project_db_1:postgresql
注意,
external_links链接的服务与当前服务必须是同一个网络环境。extra_hosts
添加主机名映射。
extra_hosts:
- "somehost:162.242.195.82"
- "otherhost:50.31.209.229"










