英文文檔:https://docs.docker.com/get-started/#images-and-containers
1.什麼是Docker
Docker是開發人員和系統管理員使用容器開發,部署和運行應用程序的平臺。使用Linux容器部署應用程序稱爲容器化。容器不是新的技術(基於LXC 的高級容器引擎),但它們用於輕鬆部署應用程序。
容器的優點:
- 靈活:即使是最複雜的應用也可以集裝箱化。
- 輕量級:容器利用並共享主機內核。
- 可互換:您可以即時部署更新和升級。
- 便攜式:您可以在本地構建,部署到雲,並在任何地方運行。
- 可擴展:您可以增加並自動分發容器副本。
- 可堆疊:您可以垂直和即時堆疊服務。
2.鏡像(image)和容器(containers)
通過運行鏡像啓動容器。鏡像是一個可執行包,包含運行應用程序所需的所有內容 - 代碼,運行時,庫,環境變量和配置文件。
容器是圖像的運行時實例 - 鏡像在執行時在內存中爲具有狀態的鏡像或用戶進程。您可以使用命令docker ps查看正在運行的容器列表,就像在Linux中一樣。
可以把Image比作Java中的類,containers比作對象
3.容器和虛擬機的區別
容器在Linux上本機運行,並與其他容器共享主機的內核。它運行一個獨立的進程,不佔用任何其他可執行文件的內存,使其輕量級。
相比之下,虛擬機(VM)運行一個完整的“客戶”操作系統,通過虛擬機管理程序對主機資源進行虛擬訪問。通常,VM提供的環境比大多數應用程序需要的資源更多。
4.基本操作
4.1 運行docker –version並確保您擁有受支持的Docker版本
$ docker --version
4.2 運行docker info 或(不帶– 的docker version)以查看有關docker安裝的更多詳細信息
$ docker info
或
$ docker version
4.3 通過運行簡單的Docker鏡像hello-world來測試您的安裝是否有效
$ docker run hello-world
#以下是輸出信息
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:ca0eeb6fb05351dfc8759c20733c91def84cb8007aa89a5bf606bc8b315b9fc7
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
4.4 列出下載到您的計算機的hello-world映像
$ docker image ls
4.5 查看正在運行和運行結束的容器(不加–all只能查看正在運行的容器)
$ docker container ls --all
5.總結
## Docker CLI 命令列表
docker
docker container --help
## 顯示Docker版本和信息
docker --version
docker version
docker info
## 運行鏡像
docker run hello-world
## 鏡像列表
docker image ls
## 容器列表 (運行中, 全部, 已結束)
docker container ls
docker container ls --all
docker container ls -aq
容器化使CI / CD無縫。例如:
- 應用程序沒有系統依賴性
- 可以將更新推送到分佈式應用程序的任何部分
- 資源密度可以優化。
使用Docker,擴展應用程序的問題在於啓動新的可執行文件,而不是運行繁重的虛擬機。