Docker中部署Redis集群与部署微服务项目的详细过程
一、使用Docker部署的好处
Docker的好处在于:在不同实例上运行相同的容器
Docker的五大优点: 持续部署与测试
、多云服务平台支持
、环境标准化和版本控制
、隔离
、安全
二、Docker 与 Kubernetes 对比
Docker适用于较为小的应用,并发量不大的情况下、微服务为超过10个,建议适用Docker部署,这样也省资源、可减少开发成本。
K8S适用于大集群的情况,高并发,并且微服务超过了10个,同时性能也是非常好的,性能好的前提下,开发成本也增加了不少!
三、Redis集群部署实战
下面部署如图所示三主三从的Redis集群
停掉所有的容器,删除全部记录
docker rm $(docker ps -a -q)
创建自定义网络redis
docker network create redis --subnet 172.38.0.0/16
通过脚本创建六个redis的基本信息
for port in $(seq 1 6); \ do \ mkdir -p /mydata/redis/node-${port}/conf touch /mydata/redis/node-${port}/conf/redis.conf cat << EOF >/mydata/redis/node-${port}/conf/redis.conf port 6379 bind 0.0.0.0 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 cluster-announce-ip 172.38.0.1${port} cluster-announce-port 6379 cluster-announce-bus-port 16379 appendonly yes EOF done
启动6个redis容器,并进行数据挂载
# 通过脚本一次性启动 for port in $(seq 1 6); \ do docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \ -v /mydata/redis/node-${port}/data:/data \ -v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \ -d --net redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf; \ done
进入redis-1中设置创建集群
# 进入redis-1 docker exec -it redis-1 /bin/sh # 创建集群 redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13 :6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
进入容器
redis-cli -c # 查看详细信息 CLUSTER INFO
查看nodes
CLUSTER NODES
设置值
set k1 v1
我们可以看到,将值设置在了 13节点上,我们把该节点停止,再次获取值查看
# 新开窗口停止redis-3容器 docker stop redis -3
在原来窗口获取k1
# 需要重新进入再次获取 get k1
可以看到,值已经同步到了其它节点,主节点挂掉后,我们照样可以拿到值!
四、Spring Boot项目 打包镜像
创建一个SpringBoot项目
TestController
@RestController public class TestController { @GetMapping("/hello") public String hello() { return "Hello World!!!"; } }
本地测试成功访问,然后编译项目为jar包
// 进入项目目录 mvn clean package
下载Docker镜像
编写Dockerfile
FROM java:8 COPY *.jar /app.jar CMD ["--server.port=8080"] EXPOSE 8080 ENTRYPOINT ["java", "-jar", "/app.jar"]
将jar包和Dockerfile上传至服务器
服务器文件
编译Dockerfile
docker build -t xiaowang .
测试访问
curl localhost:49153
成功上传镜像!
⛵小结
以上就是【Bug 终结者】对 Docker实战 – 部署Redis集群与部署微服务项目 的简单介绍,使用Docker部署我们的应用很方便,快捷,但是架构庞大的话,就不建议使用Docker了,可以采用我们的k8s集群部署,是当下最流行的技术!
到此这篇关于Docker中部署Redis集群与部署微服务项目的文章就介绍到这了,更多相关Redis集群与部署微服务项目内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
ubuntu22通过docker安装wechat启动后无界面的问题及解决方法
这篇文章主要介绍了ubuntu22通过docker安装wechat启动后无界面的解决方法,通过微信创建脚本发现一系列问题,最终在小编的努力下顺利解决,下面把解决过程分享给大家,需要的朋友可以参考下2022-07-07docker-compose集成Jenkins部署,打包,发布方式
在Docker环境中安装配置Jenkins,需挂载JDK、Maven等至容器指定路径,设置国内镜像提升下载速度,并添加插件与凭据完成环境配置2024-10-10Docker Gitlab+Jenkins+Harbor构建持久化平台操作
这篇文章主要介绍了Docker Gitlab+Jenkins+Harbor构建持久化平台操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-11-11解决Docker镜像拉取超时及优化网络配置的方法(failed to do request
在使用 Docker 构建和部署应用时,拉取镜像是一个关键的步骤,然而,在一些网络环境中,特别是企业内部网或受限网络环境中,可能会遇到 Docker 镜像拉取失败或超时的问题,这篇博客将详细探讨如何应对 Docker 镜像拉取超时的问题,需要的朋友可以参考下2024-11-11详解docker国内镜像拉取和镜像加速registry-mirrors配置修改
由于国内访问直接访问Docker hub网速比较慢,拉取镜像的时间就会比较长。一般我们会使用镜像加速或者直接从国内的一些平台镜像仓库上拉取2017-05-05
最新评论