Docker 簡介與安裝
Docker 技術簡介
Docker 如日中天,這不是單純的炒的概念,Docker 的確解決了開發和運費的痛點,比如版本的搬遷,從測試環境搬遷到預發、生產環境,在企業開發與測試中,得到了非常廣泛的應用。
- Docker 是一個開放源碼的軟件項目,基於 GO 語言
- Docker 可以讓開發打包他們的應用以及依賴包到一個輕量級、可移植的容器中
- Docker 打包好容器,可以發佈到任何流行的 Linux 機器上,也可以實現虛擬化
- 容器是完全使用沙箱機制,互相之間不會有任何接口
- Docker 容器性能開銷極低,這個才是關鍵
- Docker 使用客戶端-服務器(C/S)架構模式,使用遠程 API 來管理和創建 Docker 容器
Docker 的應用場景
- Web 應用自動化打包和發佈
- 自動化測試和持續集成、發佈
- 在服務器環境中部署和調整數據庫或其他的後臺應用
- 使用 Docker 可以實現開發環境、測試環境、生成環境的一致性
Docker 借鑑了標準的集裝箱的概念。標準的集裝箱將貨物運往世界各地,Docker 將這個模型運行到自己的設計中。唯一不同的是: 集裝箱是運輸貨物,Docker 是運輸軟件。
Docker 和傳統的 VM 的區別
docker 與傳統的 VM 對比:
- 啟動速度:vm 一般幾十秒或者幾分鐘,docker 幾秒或者毫秒
- 大小:vm 一般幾 G,docker 只有幾兆
Docker 的組成
Docker 需要分為三部分: 倉庫、 鏡像 容器
| Docker 鏡像 | Docker 鏡像是用於創建 Docker 容器的模板。鏡像是基於聯合文件系統的一種層式結構,由一系列指令一步一步構建出來。 |
|---|---|
| Docker 容器 | 容器是獨立運行的一個或多個應用。鏡像相當於類,容易相當於類的實例 |
| Docker 客戶端 | Docker 客戶端通過命令行或者其他工具使用 Docker API 與 Docker 的守護進程通信 |
| Docker 主機 | 一個物理或者虛擬的機器用於執行 Docker 守護進程和容器 |
| Docker 守護進程 | 是 Docker 服務器端進程,負責支撐 Docker 容器的運行以及鏡像的管理 |
| Docker 倉庫 | Docker 倉庫用來保存鏡像,可以理解為代碼控制中的代碼倉庫。Docker Hub 提供了龐大的鏡像集合供使用,用戶也可以將自己本地的鏡像推送到 Docker 倉庫供其他人下載 |
一鍵安裝 Docker
sh
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh啟動 Docker
sh
sudo systemctl enable docker
sudo systemctl start docker卸載 Docker
sh
sudo apt remove docker docker-engine docker.io containerd runc