容器化基礎

ML李嘉圖發表於2022-02-13
  1. 使用 linux 通過 java -jar 方式部署單體架構,war 包丟tomcat。
  2. 使用 Docker部署微服務架構。

相關文件:

簡介

雲原生:Java,C等開發的應用叫原生應用,部署上雲。原生應用上雲的整個過程,以及雲上的一系列解決方案。

部署雲端計算資源有三種不同的方法:公共雲、私有云和混合雲。採用的部署方法取決於業務需求。

擴充套件:VPC

容器化基礎

解決的問題

  • 應用構建

    • Java、C++、JavaScript
      • 打成軟體包
    • .exe
      • docker build .... 映象
  • 應用分享

    • 所有軟體的映象放到一個指定地方 docker hub
      • 安卓,應用市場
  • 應用執行

    • 統一標準的 映象
      • docker run
  • .......

資源隔離

  • cpu、memory資源隔離與限制

  • 訪問裝置隔離與限制

  • 網路隔離與限制

  • 使用者、使用者組隔離限制

  • ......

架構

  • Docker_Host:

    • 安裝Docker的主機
  • Docker Daemon:

    • 執行在Docker主機上的Docker後臺程式
  • Client:

    • 操作Docker主機的客戶端(命令列、UI等)
  • Registry:

    • 映象倉庫
      • Docker Hub
  • Images:

    • 映象,帶環境打包好的程式,可以直接啟動執行
  • Containers:

    • 容器,由映象啟動起來正在執行中的程式

互動邏輯

裝好Docker,然後去 軟體市場 尋找映象,下載並執行,檢視容器狀態日誌等排錯。

實戰圖

Docker hub,找到映象。

建立&構建一個Java應用

程式碼地址:https://gitee.com/zwtgit/dockerdemo

準備工作

附帶:Docker安裝Redis,部署視訊,https://www.bilibili.com/video/BV13Q4y1C7hS?p=20

Docker hub,找到映象,裡面有詳細的文件。

啟動,https://hub.docker.com/_/redis

docker run --help

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

#redis使用自定義配置檔案啟動
docker run -v /data/redis/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/data \
-d --name myredis \
-p 6379:6379 \
redis:latest  redis-server /etc/redis/redis.conf

應用打包

編寫Dockerfile將自己的應用打包映象。

以前

Java為例

  • SpringBoot打包成可執行jar

  • 把jar包上傳給服務

  • 伺服器執行java -jar

在外掛中打包後可以看到jar或者war相應的包以及位置,可以在本地使用java -jar命令測試。

現在

所有機器都安裝Docker,任何應用都是映象,所有機器都可以執行。

我這裡打的war包。

FROM openjdk:8-jdk-slim
LABEL maintainer=leifengyang

COPY target/*.war   /app.war

ENTRYPOINT ["java","-jar","/app.war"]

docker構建,最後一個點表示工作在當前目錄。

docker build -t java-demo:v1.0 .

啟動容器

docker run -d -p 8080:8080 --name mydockerfiletest-app java-demo:v1.0 

# 登入docker hub
docker login

#給舊映象起名
docker tag java-demo:v1.0  leifengyang/java-demo:v1.0

# 推送到docker hub
docker push leifengyang/java-demo:v1.0

# 別的機器
docker pull leifengyang/java-demo:v1.0

# 別的機器執行
docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0 

相關文章