docker 學習-- 01 基礎知識
文章目錄
- docker 學習-- 01 基礎知識
- 1.前言
- 1.1 docker 是什么
- 1.2 docker優點
- 1.2.1 統一開發和生產環境:
- 1.2.2 高性能:
- 1.2.3 更輕松的維護和拓展:
- 1.2.4 更輕松的遷移:
- 1.3 docker缺點
- 1.3.1 運行環境受限
- 1.3.2 文件管理和網絡端口管理
- 1.4總結
- 2、docker 專業術語
- 2.1Docker客戶端。
- 2.2 Docker守護進程(Daemon)。
- 2.3 Docker鏡像(Image)。
- 2.4 Docker容器(Container)。
- 2.5 鏡像倉庫(Repository)。
1.前言
1.docker 是什么 2.docker 可以做什么 3.如何用docker
1.1 docker 是什么
白話:
Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的鏡像中,然后發布到任何流行的
Linux或Windows操作系統的機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口
自己理解:解決環境不統一的問題
1.2 docker優點
1.2.1 統一開發和生產環境:
讓自己的環境和小伙伴們的版本都變成一樣的 包括線上和自己本地,減少因為環境引起的報錯;
1.2.2 高性能:
虛擬機的粒度是虛擬出的機 ,而Docker的粒度則是被限制的應用 ,相比較而言 Docker 的內存占用更少,更加輕量級,性能也更優。
而秒級的啟動,也可以讓我們啟動電腦時候,開發環境的運行是無感知的。
1.2.3 更輕松的維護和拓展:
場景1 當一個項目需要很多人如開發或者有一個人修改了自己本地的一些環境擴展,導致其他人也無法正常使用,使用docker的composer 擴展可以實現類似于 git 一樣的功能
1.2.4 更輕松的遷移:
場景1:當我們想給其他人提交一個展示 如果對方也使用docker 就可以輕松的運行起一套環境
場景2:可以開辟起一個新的環境 自己去測試東西
1.3 docker缺點
1.3.1 運行環境受限
這也就意味著 有些系統是無法運行docker 或者運行起來會有一些問題
(記錄時間 23-8-25僅供參考)
1.Windows
Windows 上運行 Docker 最新的版本需要 Windows 10 或 Windows Server 2016 及以上版本,并且需要啟用 Hyper-V。同時還需要安裝 Docker Desktop for Windows,該軟件提供了圖形化的容器管理界面,方便用戶進行容器的創建、管理和運行。Windows 系統下的容器可以運行 Windows Server Core 或 Nano Server 兩種系統鏡像,其中 Windows Server Core 鏡像大小為 2GB 左右,適合于需要支持 .NET Framework 應用或者需要完整 .NET 支持的應用,而 Nano Server 鏡像大小僅為幾百 MB,適合于需要快速啟動、較小體積和低安全風險的應用。
2.Linux (非常建議在Linux下使用進行docker 操作)
Linux 是 Docker 最廣泛使用的操作系統之一。Docker 支持多種 Linux 發行版,如 Debian、CentOS、Ubuntu 等。運行 Linux 容器時,Docker 鏡像是從 Docker Hub 獲取的,用戶可以搜索相關鏡像進行下載。Linux 系統鏡像大小比 Windows 系統鏡像要小得多,同時 Docker 還提供了 Alpine Linux 鏡像,體積更小,適合于啟動快速、網絡資源有限的環境下使用。用戶可以通過命令行或者 Dockerfile,使用 Docker 鏡像創建和管理容器。
3.macOS(這個本人也沒有實際運行僅供參考)
在 macOS 上運行 Docker 需要先安裝 Docker Desktop for Mac,該軟件提供了可視化的容器管理工具。 macOS 下的 Docker 容器只能部署 Linux 環境的應用,無法直接部署 Windows 應用。用戶可以在 Docker Hub 上搜索所需的 Linux 系統鏡像,然后通過 Docker Desktop for Mac 工具來創建和管理容器。
1.3.2 文件管理和網絡端口管理
1.docker 文件 都是運行在虛擬盤里,如果系統崩潰或者誤操作清理,也會造成問題文件丟失
一般的解決辦法 都是通過掛載到物理盤來存文件 或者管理到git 或者svn 上
2. 如果在本地需要映射端口出來
場景1 起一套 Php7+Nginx2.0+ Mysql 5.7+ Redis 6 環境 需要 開放 80 3306 6937 等接口
這個時候又起來一套 go 的環境 或者 又啟用一套其他 項目 也需要 開放 80 3306 6937 等接口
這個時候就需要去映射 比如本地 5555::80 6666::3306 7777::6937 需要自己去配置這些沖突
1.4總結
docker 還是非常值得學習的
1.docker 處理環境非常有優勢
2.學習新的東西有時間成本 以及遇到問題解決問題的成本 這是沒辦法避免的
2、docker 專業術語
2.1Docker客戶端。
通常指 Docker 提供的命令行工具,是 Docker 最基本的用戶接口。用戶通過 Docker 客戶端提交Docker
指令,Docker 守護進程接收并執行該指令。Docker 也有圖形化的客戶端工具。
2.2 Docker守護進程(Daemon)。
在 Docker 宿主機上運行 Docker,實際上運行的是 Docker 守護進程。用戶并不直接和 Docker 守護進程交互,而是通過
Docker 客戶端的命令來和它進行交互。
2.3 Docker鏡像(Image)。
一個Docker 鏡像是一個只讀的模板。例如,一個 Docker 鏡像可以包含一個 CentOS
的操作系統、一個MySQL的數據庫和一個Tomcat的應用服務器。Docker鏡像被用來創建Docker容器。Docker提供了一個簡單的方式來構建一個新的鏡像或更新一個已經存在的鏡像。用戶也可以從鏡像倉庫下載其他人已經創建好的
Docker 鏡像。
2.4 Docker容器(Container)。
通過 Docker 鏡像可以創建 Docker 容器。Docker 存任何東西,而的容器可以保這些東西是運行一個應用所必需的。可以把
Docker 容器看成是一個虛擬機。Docker
容器可以被運行、開啟、停止移動和刪除。每一個容器都是一個分離的、安全的應用平臺。Docker 容器是 Docker 的運行組件。
2.5 鏡像倉庫(Repository)。
Docker 的鏡像倉庫用于保存 Docker 鏡像,它可以是公共的存儲地方,也可以是私有的存儲地方.。 公共的鏡像倉庫由 Docker
Hub 提供,它提供了一個用戶可以使用的已有鏡像的集合。這些集合中的鏡像可以是你自己創建的,也可以是別人創建的。
私有的鏡像倉庫需要自己在私有環境中搭建,例如在企業內網中自行搭建。Harbor 是一個典型的私有的鏡像倉庫。