forked from supermy/mytools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.log
332 lines (244 loc) · 11.7 KB
/
README.log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
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
2015-06-16
设置默认时区为上海,debian 镜像包,重新构建其他镜像包。
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