初識 Docker

HuDu發表於2020-08-04

Docker 學習

  • Docker概述
  • Docker安裝
  • Docker命令
    • 映象命令
    • 容器命令
    • 操作命令
    • 。。。
  • Docker映象!
  • 容器資料卷!
  • DockerFile
  • Docker網路原理
  • IDEA整合Docker
  • Docker Compose
  • Docker Swarm 簡化的k8s
  • CI\CD Jenkins

Docker 概述

產品:開發—上線 兩套環境!應用環境,應用配置!
環境配置麻煩,每個機器都要部署環境(叢集Redis,ES,Hadoop)費時費力
釋出一個專案(jar+(Redis MySQL jdk ES)),專案能不能帶上環境安裝打包!

之前在伺服器配置應用環境Redis MySQL jdk ES Hadoop,配置麻煩,不能跨平臺。
Windows,最後到Linux!

傳統:開發jar,運維來做!
現在:開發打包部署上線,一套流程做完!

Java — apk — 釋出(應用商店)— 下載使用 — 安裝即可用
Java — jar(環境)—打包專案帶上環境(映象)—(Docker倉庫:商店)— 下載我們釋出的映象 — 直接執行即可!

Docker給上面的問題,提出瞭解決方案!

Docker的思想來自集裝箱!
JRE – 多個應用(埠衝突)– 原來都是交叉的
隔離:Docker核心思想!打包裝箱!每個箱子是互相隔離
Docker通過隔離機制,可以將伺服器利用到極致!

Docker 歷史

2012年,幾個年輕人在美國成立了一家公司dotCloud
做一些pass的雲端計算服務! LXC有關的容器技術
他們將自己的技術,容器化技術,命令就是Docker
Docker剛剛誕生的時候沒有引起行業的注意!
開源

2013年,Docker開源!
越來越多的人發現Docker的有點,Docker每個月更新一個版本
2014年,Docker1.0釋出
Docker為什麼火?十分輕巧
在容器技術之前,都是虛擬機器技術
虛擬機器:在通過虛擬軟體,虛擬出來一臺或者多臺電腦!笨重!
虛擬機器也是虛擬化技術,Docker容器技術,也是一種虛擬化技術!

vm:linux centos映象(一個電腦) 隔離,需要開啟多個虛擬機器 幾個G 幾分鐘
docker,隔離,映象(最核心的環境 4M+jdk+mysql)十分輕巧,執行映象就可以 幾個M kb 秒級

到現在,所有開發人員都要會docker

Docker是基於Go語言開發的!開源!

官網:www.docker.com/
文件地址:docs.docker.com/
Docker文件超級詳細!

倉庫地址:hub.docker.com/
git push/pull

Docker 能做什麼

之前的虛擬機器技術

Docker
缺點:

  1. 資源佔用十分多
  2. 冗餘步驟多
  3. 啟動慢

容器化技術

容器化技術並不是模擬一個完整的作業系統

Docker

比較Docker和虛擬機器技術的不同:

  • 傳統的虛擬機器,虛擬出一條硬體,執行一個完整的作業系統,然後在這個系統上安裝和執行軟體。
  • 容器內的應用直接執行在宿主機的核心,容器自己是沒有自己的核心,也沒有虛擬硬體
  • 每個容器間是互相隔離,每個容器內都有一個屬於自己的檔案系統,互不影響。

DevOps(開發運維)

更快速的交付和部署
傳統:一堆幫助文件,安裝程式
Docker:打包映象釋出測試,一鍵執行
更便捷的升級和擴容
使用了Docker之後,我們部署應用,就和搭積木一樣!
更簡單的系統運維
在容器化之後,我們開發,測試幻都是高度一致
更高效的計算資源利用
Docker是核心級別的虛擬化,可以在一個物理機上執行很多容器例項,伺服器的效能可以被壓榨到極致!

本作品採用《CC 協議》,轉載必須註明作者和本文連結