Docker Compose
Docker Compose可以提供 Docker Compose YML的支持,为官方Docker Compose的子集、现已支持如下参数,更多参数后续会陆续兼容,可以从本地文件读取设置。
- Environment
可以设定环境变量,为变量赋值。
environment:
WORDPRESS_DB_HOST: 192.168.1.12
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: foobar
- links
可以Link到其他的容器。可以直接写应用名(同一个YML内),或者可以写Link别名(SERVICE:ALIAS)
links:
- db
- db:database
- redis
Docker Link 会修改您容器内的/etc/hosts文件,就像这样:
172.17.2.186 db
172.17.2.186 database
172.17.2.186 redis
- ports
开放端口,可以同时申明主机和容器端口 (HOST:CONTAINER), 也可以只申明容器端口。(会随机选定一个外部端口).
ports:
- "3306"
- "8080:8080"
- "20048:22"
- "127.0.0.1:8001:8001"
- image
镜像的地址,如已经在镜像仓库存在、会在主机不存在该镜像的时候,拉取。
image: ubuntu
image: orchardup/postgresql
image: a4bc65fd
- command
覆盖掉默认的cmd命令
command: bundle exec thin -p 3000
- expose
开放端口但不会在主机上映射。仅仅用于被其他的容器Link。只能保留内部端口
expose:
- "3306"
- "8080"
- volumes
支持Mount存储卷,可以支持指定主机路径和容器路径(HOST:CONTAINER), 还可以包括只读 (HOST:CONTAINER:ro).
volumes:
- /var/lib/mysql
- ./cache:/tmp/cache
- ~/configs:/etc/configs/:ro
- labels
可以通过Docker Label给容器加一些元数据。
labels:
com.example.description: "Accounting webapp"
com.example.department: "Finance"
com.example.label-with-empty-value: ""
labels:
- "com.example.description=Accounting webapp"
- "com.example.department=Finance"
- "com.example.label-with-empty-value"
数人云 Compose
数人云 Compose可以设置应用所占的cpu、内存及实例数,语法与docker Compose类似,可以从本地文件读取。
cpu: 0.1
cpu使用量设定,建议0.1~主机最大核心数
mem: 168
设定内存使用量、建议16m~主机最大值
instances: 2
设定应用到实例个数,建议根据资源设定