網站首頁 編程語言 正文
一、使用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集群部署,是當下最流行的技術!
原文鏈接:https://blog.csdn.net/weixin_45526437/article/details/125384327
相關推薦
- 2022-06-06 MybatisPlus二級緩存體系探究分析_相關技巧
- 2022-09-19 Android自定義對話框的簡單實現_Android
- 2022-03-23 詳解C#異步多線程使用中的常見問題_C#教程
- 2023-10-17 淺記前端遇到的問題 input上傳文件屬性以及第三方組件庫上傳文件屬性
- 2022-11-29 .NET中lambda表達式合并問題及解決方法_實用技巧
- 2022-10-29 STDC分割網絡:onnx推理
- 2023-08-28 axios的使用和接口請求統一封裝處理
- 2022-07-07 Python?pluggy模塊的用法示例演示_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支