forked from supermy/mytools
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
353 additions
and
327 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,329 @@ | ||
mytools | ||
======= | ||
|
||
qq交流群:178844602 | ||
|
||
ig+docker:一键构造mongodb集群;一键集群数据初始化;参数二次优化 | ||
http://t.cn/RwfruoO | ||
|
||
fig+docker:一键构造分布式运行环境;参数二次优化 | ||
http://t.cn/RwfrDlM | ||
|
||
fig+docker:一键提供实时消息队列:kafka、实时运算:storm、应用程序发布:java、中文分词全文检索环境:solr | ||
http://t.cn/RwfdAjS | ||
|
||
fig+docker:一键提供hadoop分布式运行环境 | ||
http://t.cn/RwfdiQm | ||
|
||
|
||
应用场景:wordpress,mysql | ||
下载安排 | ||
docker pull mysql:latest | ||
docker pull wordpress:latest | ||
启动环境 | ||
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=mysecretpassword -d mysql // "IPAddress": "172.17.0.2", | ||
docker run --name some-wordpress --link some-mysql:mysql -p 8081:80 -d wordpress //"IPAddress": "172.17.0.3", | ||
测试 | ||
#不允许远程访问 | ||
boot2docker ssh -L 60001:localhost:3306 //可以在用户环境测试3306端口 | ||
mysql -port 60001 -u mysql -pmysql | ||
boot2docker ssh -L 8081:localhost:8081 | ||
http://localhost:8081 | ||
自动进入安装界面 | ||
http://127.0.0.1:8081/wp-admin/install.php?step=1 | ||
安装完成之后进入登陆见面 | ||
http://127.0.0.1:8081/wp-login.php | ||
|
||
应用场景:DB4Oracle 性能可以 oracel-11g | ||
|
||
docker pull wnameless/oracle-xe-11g:latest | ||
docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g | ||
|
||
hostname: localhost port: 49161 sid: xe username: system password: oracle | ||
Password for SYS oracle | ||
Login by SSH ssh root@localhost -p 49160 password: admin | ||
#>su oracle | ||
oracle>sqlplus system/oracle | ||
sql>select * from dual | ||
boot2docker ssh -L 49166:localhost:49161 //49166是本机接收端口,49161是docker转出端口 | ||
OracleSqlDeveloper 建立链接进行测试,成功。 | ||
|
||
docker pull filemon/oracle_11g:latest | ||
docker run -d -p 1521:1521 --name oracle filemon/oracle_11g | ||
boot2docker ssh -L 1521:localhost:49159 | ||
OracleSqlDeveloper | ||
username-password:system/admin | ||
|
||
|
||
应用场景:app-server tomcat | ||
|
||
docker pull tutum/tomcat | ||
启动服务 | ||
docker run -d -p 8082:8080 -p 22 tutum/tomcat | ||
docker run -d -p 8080:8080 -e TOMCAT_PASS="mypass" tutum/tomcat //制定口令 | ||
|
||
看tomcat日志 | ||
docker logs e7de45dad550 | ||
tomcat-server,admin:uo8FsDhjjuUk | ||
http://127.0.0.1:8082/manager/status | ||
|
||
boot2docker ssh -L 80:localhost:8080 | ||
http://127.0.0.1/manager/status admin/mypass | ||
|
||
|
||
应用场景:web-server nginx 可制定显示内容和优化配置文件 性能 ok | ||
docker pull nginx:latest //https://registry.hub.docker.com/_/nginx/ | ||
|
||
DockerFile:构建自己的nginx-web | ||
FROM nginx | ||
COPY static-html-directory /usr/share/nginx/html | ||
|
||
docker build -t some-content-nginx | ||
docker run --name some-nginx -d some-content-nginx | ||
|
||
mkdir some/content | ||
echo 'hello,word'>some/content/index.html | ||
#一个本地主机的目录当做数据卷挂载在容器上,[host-dir]:[container-dir]:[rw|ro] | ||
docker run --net=host --name some-nginx -v /home/docker/some/content:/usr/share/nginx/html:ro -d nginx | ||
|
||
|
||
curl 172.17.0.6/index.html | ||
|
||
docker run -rm --volumes-from DATA -v $(pwd):/backup busybox tar cvf /backup/backup.tar /data | ||
创建一个新容器,挂载数据卷容器,同时挂载一个本地目录,然后把远程数据卷容器的数据卷通过备份命令备份到映射的本地目录里面。 | ||
|
||
|
||
使用本地的配置文件运行容器 | ||
docker run --name some-nginx -v /some/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx | ||
docker cp some-nginx:/etc/nginx/nginx.conf some/nginx.conf | ||
|
||
应用场景:nosql-mongodb | ||
|
||
docker pull mongo:latest | ||
docker run --name some-mongo -d mongo | ||
boot2docker ssh -L 27017:172.17.0.7:27017 | ||
|
||
|
||
应用场景:缓存服务器-memcached/redis ,可配置内存和链接数 | ||
|
||
docker pull sylvainlasnier/memcached | ||
docker run --name memcached -d -p 50006:11211 sylvainlasnier/memcached | ||
docker run --rm -ti -e MAX_MEM=1024,MAX_CONN=10000 sylvainlasnier/memcached | ||
|
||
docker run -d -P -ti -e MAX_MEM=1024,MAX_CONN=10000 sylvainlasnier/memcached | ||
|
||
$nc 127.0.0.1 50006 | ||
stats | ||
|
||
docker pull redis | ||
docker run --name some-redis -p 6379 -d redis | ||
|
||
#自定义redis配置参数 | ||
FROM redis | ||
redis.conf /data/ | ||
CMD [ "redis-server", "/data/redis.conf" ] | ||
docker run --volumes-from datacontainer --name myredis redis | ||
|
||
应用场景:云计算平台,cloudera hadoop+hbase+hive+zookeeper+mahout | ||
https://github.com/cloudera/cdh-twitter-example | ||
https://github.com/wikimedia/puppet-cdh | ||
|
||
https://github.com/stackdio-formulas/cdh5-formula | ||
|
||
mahout: | ||
https://github.com/apache/mahout | ||
https://github.com/bsspirit/maven_mahout_template | ||
https://github.com/tdunning/MiA | ||
|
||
#初始化环境 | ||
docker pull oddpoet/hbase-cdh5:latest | ||
docker run -d -P oddpoet/hbase-cdh5 | ||
#影射端口访问 | ||
boot2docker ssh -L 65010:127.0.0.1:49155 | ||
http://localhost:65010/ | ||
|
||
#hdfs://master:8020/ | ||
docker run --name cdh -t -d -p 8020:8020 -p 50070:50070 -p 50010:50010 -p 50020:50020 -p 50075:50075 -p 8030:8030 -p 8031:8031 -p 8032:8032 -p 8033:8033 -p 8088:8088 -p 8040:8040 -p 8042:8042 -p 10020:10020 -p 19888:19888 chalimartines/cdh5-pseudo-distributed | ||
docker run --name cdh -t -d -P chalimartines/cdh5-pseudo-distributed | ||
|
||
应用场景:全文检索 solr | ||
|
||
docker pull makuk66/docker-solr | ||
docker run -it -p 8983:8983 -t makuk66/docker-solr | ||
docker run -it -p 8983:8983 -p 7574:7574 makuk66/docker-solr \ | ||
/bin/bash -c "/opt/solr/bin/solr -e cloud; echo hit return to quit; read" | ||
|
||
|
||
# run ZooKeeper, and define a name so we can link to it | ||
docker run -name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 jplock/zookeeper | ||
|
||
# run the first Solr node, with bootstrap parameters, and pass a link parameter to docker | ||
# so we can use the ZK_* environment variables in the container to locate the ZooKeeper container | ||
docker run -link zookeeper:ZK -i -p 8983:8983 -t makuk66/docker-solr \ | ||
/bin/bash -c 'cd /opt/solr/example; java -Dbootstrap_confdir=./solr/collection1/conf -Dcollection.configName=myconf -DzkHost=$ZK_PORT_2181_TCP_ADDR:$ZK_PORT_2181_TCP_PORT -DnumShards=2 -jar start.jar' | ||
|
||
# in separate sessions, run two more zookeepers | ||
docker run -link zookeeper:ZK -i -p 8984:8983 -t makuk66/docker-solr \ | ||
/bin/bash -c 'cd /opt/solr/example; java -DzkHost=$ZK_PORT_2181_TCP_ADDR:$ZK_PORT_2181_TCP_PORT -DnumShards=2 -jar start.jar' | ||
docker run -link zookeeper:ZK -i -p 8985:8983 -t makuk66/docker-solr \ | ||
/bin/bash -c 'cd /opt/solr/example; java -DzkHost=$ZK_PORT_2181_TCP_ADDR:$ZK_PORT_2181_TCP_PORT -DnumShards=2 -jar start.jar' | ||
|
||
|
||
应用场景:oracle java7 环境构建 | ||
|
||
install boot2docker | ||
boot2docker up | ||
boot2docker ssh | ||
git clone https://github.com/supermy/mytools | ||
cd mytools | ||
docker build -t myjava7/debian myjava7 | ||
docker run -i -t myjava7/debian:latest | ||
>java -version | ||
|
||
|
||
|
||
****************************************************************** | ||
todo | ||
规则殷勤:drools 平台使用 | ||
工作流:activiti | ||
|
||
20150408 | ||
增加dns-docker镜像,方便通过dns配置域名 | ||
|
||
20150329 | ||
云平台:flume+kafka-storm-hbase:docker4flume+docker4kafa 完成 | ||
|
||
20150328 | ||
完成hadoop+hbse4docker镜像脚本; | ||
升级mongodb3.0.1镜像; | ||
|
||
|
||
20150318 | ||
增加rabbmitmq消息队列镜像包脚本; | ||
增加spring-boot-app and rabbmitmq运行脚本; | ||
增加spring-boot-app and redis运行脚本; | ||
|
||
|
||
20150216 | ||
docker run -d -P -m 1g redis | ||
docker run -d -P -e constraint:storage=ssd mysql | ||
|
||
20150206 | ||
mysolr带中文分词,基于solr4.10.2版本;solr自带运行环境。 | ||
|
||
20150205 | ||
实时消息队列 mykafka | ||
/mystorm/ | ||
即时通讯 myim | ||
|
||
20150124 | ||
docker run -v /usr/local/bin:/target jpetazzo/nsenter:latest | ||
nsenter(无需sshd、无需attach也可以登录容器) | ||
|
||
docker images|grep none|awk '{print $3}'|xargs docker rmi | ||
|
||
web+app(mytomcat,mynginx) | ||
tomcat and nginx 发布目录和日志绑定到宿主机 | ||
|
||
hadoop+hbase+hive平台(version:1.21,2.10) | ||
kafuka应用 | ||
mahout应用 | ||
|
||
mydebian/myjava7重新定义,测试ok。 | ||
|
||
|
||
20150123 | ||
删除无效镜像 docker images |grep none|awk '{print $3}'|xargs docker rmi | ||
增加mynginx镜像 | ||
目录共享:通过主目录共享 $HOME/docker-share | ||
移入mytomcat镜像源码 | ||
|
||
web+app(mytomcat,mynginx) | ||
fig-docker-nginx-tomcat-memcached-mysql 集群脚本完成,测试ok | ||
|
||
20150120 | ||
Fig 主要用来跟 Docker 一起来构建基于 Docker 的复杂应用,Fig 通过一个配置文件来管理多个Docker容器,非常适合组合使用多个容器进行开发的场景。 | ||
安装配置fig: | ||
1.brew install fig | ||
2.$(boot2docker shellinit),或将脚本加入到.bash_profile中 | ||
3.建立测试目录env-docker,测试http://www.fig.sh/index.html | ||
|
||
20141106 | ||
mongodb-cluster ok | ||
mydebian ok | ||
myjava7 ok | ||
mysolr todo | ||
|
||
****************************************************************** | ||
#遇到的问题 | ||
/etc/hosts文件无法修改,这样你就不能自己做域名解析 | ||
VM的系统时间是UTC +0000的,而且貌似无法修改 | ||
Container的IP无法指定为静态IP,因此每次重启Container时,IP可能会变化 | ||
|
||
#绑定本地磁盘目录到容器目录 | ||
brew install sshfs | ||
cat tcuser > ~/.boot2docker/b2d-passwd | ||
#绑定本地目录到docker | ||
sshfs docker@localhost:/mnt/sda1/dev ~/workspace/dev -p 2022 -o reconnect -o password_stdin < ~/.boot2docker/b2d-passwd | ||
#绑定docker目录到容器 | ||
docker run -i -t dev:base -v /mnt/sda1/dev:/src /bin/bash | ||
|
||
#端口由容器内影射到本地机器 | ||
boot2docker ssh -L 8000:localhost:8000 | ||
docker run -i -t -p 8000:8000 | ||
|
||
#Docker使用dnsmasq替代/etc/hosts解析 | ||
|
||
|
||
#基于Docker,构造测试和生产环境。 | ||
base debian nginx(淘宝)+tomcat+memcache 集群 | ||
mongodb集群 | ||
mysql集群 | ||
oracle单机版 | ||
|
||
全文检索:solr | ||
工作流:activity | ||
规则引擎:drools | ||
|
||
dns容器ip地址配置; | ||
|
||
php框架 | ||
springmvc框架 | ||
|
||
web框架:jquery-mobile,extjs | ||
|
||
docker build -t mydev/debian test | ||
|
||
docker build -t mydb/mysql mysql | ||
|
||
|
||
Dockerfile: | ||
RUN是在building image时会运行的指令, 在Dockerfile中可以写多条RUN指令. | ||
CMD和ENTRYPOINT则是在运行container 时会运行的指令, 都只能写一条, 如果写了多条, 则最后一条生效. | ||
CMD和ENTRYPOINT的区别是: | ||
CMD在运行时会被command覆盖, ENTRYPOINT不会被运行时的command覆盖, 但是也可以指定. | ||
CMD和ENTRYPOINT一般用于制作具备后台服务的image, 例如apache, database等. 在使用这种image启动container时, 自动启动服务. | ||
ENV 命令 | ||
用于设置环境变量 | ||
ENV <key> <value> | ||
设置了后,后续的RUN命令都可以使用 | ||
ADD 命令 | ||
从src复制文件到container的dest路径: | ||
ADD <src> <dest> | ||
VOLUME 命令 | ||
VOLUME ["<mountpoint>"] | ||
如: | ||
VOLUME ["/data"] | ||
创建一个挂载点用于共享目录 | ||
WORKDIR 命令 | ||
WORKDIR /path/to/workdir | ||
配置RUN, CMD, ENTRYPOINT 命令设置当前工作路径 | ||
可以设置多次,如果是相对路径,则相对前一个 WORKDIR 命令 | ||
USER 命令 | ||
比如指定 memcached 的运行用户,可以使用上面的 ENTRYPOINT 来实现: | ||
ENTRYPOINT ["memcached", "-u", "daemon"] | ||
更好的方式是: | ||
ENTRYPOINT ["memcached"] | ||
USER daemon | ||
|
||
|
Oops, something went wrong.