Dockercompose v3官网文档: https://docs.docker.com/compose/compose-file/
Dockercompose中文: http://www.dockerinfo.net/document
借鉴: https://www.cnblogs.com/zhujingzhi/p/9786622.html#_label0
mode replicated
-
mode: global 默认是服务器负载均衡自己分配
-
mode: replicated
-
replicas: 6 // 自己定义的台数
-
deploy:
-
mode: global
-
-
deploy:
-
mode: replicated
-
replicas: 6
PLACEMENT
约束, 服务运行在哪个主机上面
node attribute |
matches |
example |
node.id |
Node ID |
node.id==2ivku8v2gvtg4 |
node.hostname |
Node hostname |
node.hostname!=node-2 |
node.role |
Node role |
node.role==manager |
node.labels |
user defined node labels |
node.labels.security==high |
engine.labels |
Docker Engine's labels |
engine.labels.operatingsystem==ubuntu 14.04 |
-
placement:
-
constraints:
-
- node.role == manager
-
- engine.labels.operatingsystem == ubuntu 14.04
RESOURCES
限制硬件信息
-
resources:
-
limits:
-
cpus: '0.50'
-
memory: 50M
-
reservations:
-
cpus: '0.25'
-
memory: 20M
docker-compose安装
二进制安装
-
curl -L https://github.com/docker/compose/releases/download/1.23.0-rc2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
-
chmod +x /usr/local/bin/docker-compose
-
docker-compose versio
PIP安装
-
pip install docker-compose
-
# 安装完需要做个软链接
-
ln -s /usr/bin/docker-compose /usr/local/bin/
-
docker-compose version
命令
-
Compose 大部分命令的对象即可以是项目的本身,也可以是指定为项目中的服务或者容器
-
执行docker-compose [COMMAND] --help 或者docker-compose help [COMMAND]可以查看命令的帮助信息
-
具体的使用格式
-
docker-compose [-f=
...] [options] [COMMAND] [ARGS] -
参数选项
-
-f,--file file指定模板文件,默认是docker-compose.yml模板文件,可以多次指定
-
-p,--project-name name指定项目名称,默认使用所在目录名称作为项目名称
-
--x-networking 使用Docker的后端可插拔网络特性
-
--x-networking-driver driver指定网络的后端驱动,默认使用bridge
-
--verbose 输入更多的调试信息
-
-v,--version 输出版本信息
-
Compose所支持的命令
-
build Build or rebuild services (构建项目中的服务容器)
-
bundle Generate a Docker bundle from the Compose file (从Compose文件生成分布式应用程序包)
-
config Validate and view the Compose file (验证并查看Compose文件)
-
create Create services (为服务创建容器)
-
down Stop and remove containers, networks, images, and volumes (停止容器并删除由其创建的容器,网络,卷和图像up)
-
events Receive real time events from containers (为项目中的每个容器流式传输容器事件)
-
exec Execute a command in a running container (这相当于docker exec。使用此子命令,您可以在服务中运行任意命令。默认情况下,命令分配TTY,因此您可以使用命令docker-compose exec web sh来获取交互式提示。)
-
help Get help on a command (获得一个命令的帮助)
-
images List images ()
-
kill Kill containers (通过发送SIGKILL信号来强制停止服务容器)
-
logs View output from containers (查看服务容器的输出)
-
pause Pause services (暂停一个容器)
-
port Print the public port for a port binding (打印某个容器端口所映射的公共端口)
-
ps List containers (列出项目中目前所有的容器)
-
pull Pull service images (拉取服务依赖镜像)
-
push Push service images (推送服务镜像)
-
restart Restart services (重启项目中的服务)
-
rm Remove stopped containers (删除所有停止状态的服务容器)
-
run Run a one-off command (在指定服务上执行一个命令)
-
scale Set number of containers for a service (设置指定服务执行的容器个数)
-
start Start services (启动已存在的服务容器)
-
stop Stop services (停止已存在的服务容器)
-
top Display the running processes (显示容器正在运行的进程)
-
unpause Unpause services (恢复处于暂停状态的容器)
-
up Create and start containers (自动完成包括构建镜像、创建服务、启动服务并关联服务相关容器的一系列操作)
-
version Show the Docker-Compose version information (输出版本)
这些命令的使用方法可以使用执行docker-compose [COMMAND] --help 或者docker-compose help [COMMAND]可以查看命令的帮助信息
因为太多的原因我这里就不写了,有时间我在把每个命令的使用方法补上吧
针对模板文件的使用才是重中之重,我在后面会对模板文件详细讲解
官方链接:https://docs.docker.com/compose/reference/build/
环境变量
-
环境变量可以用来配置 Compose 的行为,以DOCKER_开头的变量和用来配置 Docker 命令行客户端的使用一样。如果使用 boot2docker , $(boot2docker shellinit) 将会设置它们为正确的值
-
-
COMPOSE_PROJECT_NAME 设置通过 Compose 启动的每一个容器前添加的项目名称,默认是当前工作目录的名字。
-
-
COMPOSE_FILE 设置要使用的 docker-compose.yml 的路径。默认路径是当前工作目录。
-
-
DOCKER_HOST 设置 Docker daemon 的地址。默认使用 unix:///var/run/docker.sock,与 Docker 客户端采用的默认值一致。
-
-
DOCKER_TLS_VERIFY 如果设置不为空,则与 Docker daemon 交互通过 TLS 进行。
-
-
DOCKER_CERT_PATH 配置 TLS 通信所需要的验证(ca.pem、cert.pem 和 key.pem)文件的路径,默认是 ~/.docker
在使用的时候在做解释和操作吧,因为一般不会改环境变量的东西,默认的就OK,做个简单的了解
官方链接:https://docs.docker.com/compose/reference/envvars/#compose_project_name