# dever-manage(dm) docker编排工具
<pre>
git clone http://git.shemic.com:3000/dever/docker.git dever
cd dever
chmod +x dever.py
./dever.py init
</pre>

无需关注是否安装了docker，本工具会自动安装docker

<pre>
启动全部：dever run web
启动某一个软件：dever run web mysql
删除全部：dever rm web
删除某一个软件：dever rm web php
</pre>

执行完之后，请用浏览器访问你的ip即可。修改nginx配置可到dever/nginx下。

<pre>
目录说明：
1、conf：配置目录
2、data：生成的数据目录，可以用作备份
3、logs：日志目录
4、src：编辑程序开发源码目录，可以直接使用docker.shemic.com/*镜像作为编译容器来编译这些源码
5、web：php、javascript等web源码目录，可以直接使用nginx来启动http服务，用你的宿主主机ip来访问

配置文件可以随意更改，如需更改，请直接更改conf/dever/*.conf
</pre>

<pre>
dever指令传参说明：

-h 查看帮助 
-m or --method 方法名
-c or --conf 配置文件名
-n or --name 配置文件中的索引名称
-p or --param 执行参数，一般要根据动作判断

方法列表（不使用conf参数）：
1、init：初始化并更新dever代码
2、up：更新dever代码
3、show：显示当前启动的docker容器
4、showi：显示当前的docker镜像
5、rm：删除出现异常或者没有启动的docker容器
6、rmi：删除过期的docker镜像
7、package：显示可用的docker镜像(2017-07-25)

方法列表（使用conf参数）：
1、run：运行容器
2、stop：停止容器
3、crate：创建容器
4、call：运行容器，仅运行一次，用于执行一些特殊指令
5、up：运行容器并更新docker镜像
6、rm：删除正在运行的docker容器
7、save：保存或备份正在运行的docker容器
8、load：将保存或备份的docker容器恢复并重新运行
9、show：显示当前启动的docker容器(2017-07-25)

当-m参数没有匹配到内置方法列表时，将自动匹配conf/dever/*.conf的配置文件，其中*为-m的值

例子：
1、dever -m run -c web -n php：根据conf/dever/web.conf里的php配置，来持续运行php容器
2、dever -m run -c tool -n apidoc -p input=demo^out=output：根据conf/dever/tool.conf里的apidoc配置，来运行apidoc容器，这个配置里设置了run参数，指令中加入run，则apidoc容器将作为工具使用，无需持续运行apidoc容器，仅执行一次。input=demo将替换{$input}为demo，out=output将替换{$out}为output，冒号“:”为默认值
容器的配置请修改conf/dever/*.conf

也可以使用无参数名的方式来传入参数：
1、dever run web php
2、dever call tool apidoc input=demo^out=output

2017-07-25更新：
当使用dever run之后，会自动生成这个容器的基本指令，比如执行了上述的dever run web php

之后可以这样使用：
1、web-php: 进入该容器的sh命令行
2、web-php logs：查看该容器启动日志
3、web-php inspect：查看该容器的基本信息
4、web-php stop：停止该容器
5、web-php rm：停止并删除该容器，等同于dever rm web php
6、web-php show：显示该容器的状态
</pre>