install:
git clone https://github.com/shemic/dm cd dm chmod +x install ./install
安装时会自动安装docker。如果失败,请自行安装最新版本的docker即可。
基础指令:
更新代码:dm up 使用哪个仓库为主(默认aliyun):dm set private|aliyun|hub 删除某一个软件:dm rm web-php
可以使用以下命令开启web: 启动全部:dm run web 启动某一个软件:dm run web-mysql 删除全部:dm rm web 删除某一个软件:dm rm web-php
执行完之后,请用浏览器访问你的ip即可。修改nginx配置可到container/conf/web/nginx下。
目录说明: 1、container:容器内的文件 2、data:生成的数据目录,可以用作备份 3、src:源码
指令传参说明: -h 查看帮助 -a or --action 方法名 -n or --name 配置文件名或行为名 -p or --param 执行参数,一般要根据name判断 docker方法列表: 1、show:显示当前启动的docker容器 2、showi:显示当前的docker镜像 3、rm:删除出现异常或者没有启动的docker容器 4、rmi:删除过期的docker镜像 5、package:显示可用的docker镜像(2017-07-25) 方法列表(带有name参数): 1、run:运行容器 2、stop:停止容器 3、restart:重启容器 4、crate:创建容器 5、call:运行容器,仅运行一次,用于执行一些特殊指令 6、up:运行容器并更新docker镜像 7、rm:删除正在运行的docker容器 8、save:保存或备份正在运行的docker容器 9、load:将保存或备份的docker容器恢复并重新运行 10、show:显示当前启动的docker容器(2017-07-25) 例子: 1、dm -a run -n web-php:根据src/docker/conf/web.conf里的php配置,来持续运行php容器 2、dm -a run -n tool-apidoc -p input=demo^out=output:根据src/docker/conf/tool.conf里的apidoc配置,来运行apidoc容器,这个配置里设置了run参数,指令中加入run,则apidoc容器将作为工具使用,无需持续运行apidoc容器,仅执行一次。input=demo将替换{$input}为demo,out=output将替换{$out}为output,冒号“:”为默认值 容器的配置请修改src/docker/conf/*.conf 也可以使用无参数名的方式来传入参数: 1、dm run web-php 2、dm call tool-apidoc input=demo^out=output 2017-07-25更新: 当使用dm run之后,会自动生成这个容器的基本指令,比如执行了上述的dm 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:显示该容器的状态 7、web-php run:运行或者重新启动改容器 8、web-php restart:重新启动容器
2017-11-22更新: 增加一些比较有用的docker工具包: 1、大数据套件: dm run data-java dm run data-hadoop dm run data-spark dm run data-zeppelin 需要先等待data-java安装完成之后再安装之后的。可以到container/share/lib下看一下是否有jdk 访问: ip:9991 ip:40099 ip:9999 2、机器学习: dm run py-note(jupyter+numpy、scipy、matplotlib、pandas、scikit-learn、scrapy、gevent、pymysql、psycopg2) 2018-01-17更新:增加opencv、dlib库 2018-01-31更新:增加tensorflow、pytorch库,但是没有集成在包里,因为装完比较大,建议自行安装,jupyter里打开命令行,执行以下命令: cd /shell/install ./tensorflow.sh ./pytorch.sh 使用: dm run py-note py-note logs 查看token 访问你的浏览器:ip:10001、ip:10002 dmlearn install * 可以安装你需要的库,如: dmlearn install seaborn 3、elk: dm run elk-java(如果之前用了data-java这里就不用再执行了) dm run elk-es dm run elk-filebeat(需要到container/conf/elk里定义下抓取的日志目录) dm run elk-kibana 默认账号密码:elastic/changeme
2017-12-05更新: 增加个人网盘: dm run tool-pan 访问: ip:9030 用户名密码都是superuser ip:9030/dweb 是离线下载
2017-12-15更新(重要!): 删除use功能。以不同的命令替代: 1、使用docker: dm run web-php 2、安装php扩展: dp install libevent 安装libevent扩展 dp install swoole 安装swoole扩展 dp install redis dp install memcached dp install mongo dp show 查看当前可以安装的扩展 自带的php5.6和php7已经删除redis、mongo等扩展,请在需要时自行安装。 后续我会按照https://pecl.php.net/packages.php增加一些常用的扩展。 你也可以现在自行实现扩展的安装: phpInstall swoole-2.0.10 swoole libevent-dev,libaio-dev,libmnl-dev 说明: phpInstall 为固定指令 swoole-2.0.10 为在pecl.php.net中的扩展名和版本号 swoole 为生成的so名称 libevent-dev,libaio-dev,libmnl-dev 为依赖,多个用逗号隔开 3、使用composer: dpc install laravel 4、使用dever: 安装plant: dever是一个php框架,适合开发api、微服务、频繁修改模板、专题等业务,目前是内部测试版本。 plant是dever框架开发的一个小型社区 dever init dever product plant 例子:https://www.5dev.cn/ 5、使用git(方便在任意目录下pull或者push): dgit pull /data/ dgit push /data/
2017-12-18更新: 别名功能优化升级,当多个容器使用同一个别名时,可以使用该别名同时操作这多个容器。 如同时启动了php5、php7时,输入php -v, 可以同时看到这两个php的版本。 使用dp install redis安装扩展时,可以同时安装php5、php7的redis扩展。 该功能将为以后dm-manage多机部署提供支持。
2018年计划: 分工明确: 1、dm tool:工具包。上述更新都是增加了工具包。 2、dm task:任务器 3、dm manage:后台管理 4、dm cicd:持续集成 5、dm api:对外接口 6、dm shell:命令行工具,可以统一的直接对容器里的软件发布命令,如dp install libevent,将升级成: dm shell > php install libevent > pip install tornado > exit 7、dm ss:vpn工具 具体计划: 1、增加图形管理界面(dm manage) 2、增加多机使用dm(dm manage -> etcd -> dm1、dm2、dm3) 3、增加任务调度功能(celery、airflow) 4、增加持续集成等功能(从git上自动拉取代码并更新容器:CircleCI) 5、增加测试工具包 6、增加自动代理(能够通过dm直接访问google查资料)
2018-6-20更新: 1、增加default功能,直接使用dever run web时,只运行里面default定义的进程 2、增加lvs、consul等组件 3、增加集群(简易版本): ds init:开启集群,之后将得到集群主机ip,如果内网ip较多,请直接输入ds init ip ds join ip:加入到集群中 之后的操作和dm一样 ds run web:启动web服务组集群 ds run web-nginx:启动nginx集群 ds rm web-nginx:删除nginx集群 ds num web-nginx 10:将nginx集群的数量增加到10 之后将把consul和daemon加入进去,并实现可视化
2018-6-22更新: 1、优化底层容器的启动脚本,增加启动进程的记录,方便监控进程的状态,如果进程死掉,可以自动重启。 2、增加overlay网络的跨主机支持,增加docker run可以直接使用swarm网络,方便docker单机与集群的联通。添加overflow网络时,建议加上overlay_前缀 3、开始增加daemon进程,现在暂时只有consul,来做服务发现及kv存储。
2018-7-16更新: 更新dever相关指令 1、dever init 初始化,更新核心类库 2、dever package manage 更新manage官方组件 3、dever put https://git.5dev.cn:3000/php_package/ 定义自定义组件的仓库组路径 4、dever get collect 获取自定义组件,如果未定义路径,则直接更新官方组件 5、dever pull 在当前目录下更新所有依赖组件 6、dever create 在当前目录下创建一个dever项目 7、dever all 更新当前所有组件
2018-9-10更新: 1、增加文件同步工具包:rsync、btsync、lsyncd、nfs等,可以根据需要来使用。 2、增加overlay网络的跨主机支持,增加docker run可以直接使用swarm网络,方便docker单机与集群的联通。添加overflow网络时,建议加上overlay_前缀 3、daemon进程中增加文件同步机制,会将share/lib中的文件同步到从机,daemon中的git容器会自动更新代码到share/lib/php/web中