-
在这个过程中可能会出错, 有时候很难锁定错误, 可能一点点的小问题就要找很久
-
可以查询docker日志 e.g.# docker logs 178f01f63f47
-
把错误日志绑定到卷, 在容器Exited(n)时, 可以方便查看错误日志
-
避免目录结构与宿主机中原有的目录发生冲突. 合理规划部署.
-
云服务器比本地的虚拟机更快, 值得投资
-
由于太过耗时,只是用lua实现例如 分发层到应用层, 应用层连接redis集群, 转发请求等简单操作. 找另外的时间, 去完成整个的商品详情页的完整架构
构建redis-cluster
相关的代码
github链接:
https://github.com/masterzcw/docker
其中的的目录:
docker/redis-cluster
构建docker镜像
# docker build -t redis-cluster .
启动容器
# docker-compose -p redis-cluster up -d
进入容器
# docker exec -it redis-master1 bash
# docker exec -it redis-master2 bash
# docker exec -it redis-master3 bash
# docker exec -it redis-slave1 bash
# docker exec -it redis-slave2 bash
# docker exec -it redis-slave3 bash
停止和删除所有的容器
# docker stop $(docker ps -aq)
# docker rm $(docker ps -aq)
握手和槽分配
启动好6个节点之后,使用 redis-trib.rb create 命令完成节点握手和槽分配过程
进入任意一个主节点容器
# docker exec -it redis-master1
在容器里面查看这个命令的使用
# redis-trib.rb help
握手和分配槽
# redis-trib.rb create --replicas 1 192.168.11.125:6391 192.168.11.125:6392 192.168.11.125:6393 192.168.11.125:6394 192.168.11.125:6395 192.168.11.125:6396
构建nginx集群
github链接:
https://github.com/masterzcw/docker
其中的的目录:
docker/nginx
# docker build -t nginx .
# docker-compose up -d
构建php
github链接:
https://github.com/masterzcw/docker
其中的的目录:
docker/php
# docker build -t nginx .
# docker-compose up -d
核心的api地址
https://github.com/openresty/lua-nginx-module
https://www.nginx.com/resources/wiki/moudles/lua/
luaAPI
https://github.com/openresty/lua-nginx-module#ngxdecode_base64
lua包的地址
https://github.com/search?q=lua-resty
docker的镜像资源
https://github.com/docker-library/php
resty-redis-cluster-master
https://github.com/steve0511/resty-redis-cluster
动态生成c链接库用于lua加载
gcc SOURCE_FILES -fPIC -shared -o TARGET
gcc redis_slot.c -fPIC -shared -o redis_slot.so
consul容器
# docker pull consul
# docker run -itd -p 8501:8500 --name consul consul