Column
Dec 23, 2021 04:55 PM
Column 1
Description
Docker 是目前最流行的一個容器化技術。它創造了一個標準化的 container 製造程序,讓使用者可以使用一致、有系統的方法就將應用程式封裝方式、啟動方式、存取方式。這些程序都能在任何支援 Docker 的平臺上執行。
Field
Data engineer
Status
Done

Docker 簡介
Docker daemon!!!!! >> 為某可以不用 OS 就執行
開頭簡單講作用
優點> 可以更具體 可以與 Virtual Machine 比較 實際上差在哪
Docker 是目前最流行的一個容器化技術。它創造了一個標準化的 container 製造程序,讓使用者可以使用一致、有系統的方法就將應用程式封裝方式、啟動方式、存取方式。這些程序都能在任何支援 Docker 的平臺上執行。
Container Technology
Virtual Machines

- Starts in minutes
- Wastes resources
Container

- Starts in milliseconds
- Saves resources
Hypervisor
- Direct link to the infrastructure (e.g. HyperKit, Hyper-V)
- Run as an app in the host (e.g. VirtualBox, VMWare)
事實上 VM 與 Container 比較不會是 either or 的情形,更常見的狀況是兩者並行:
Windows 無法直接使用 docker,故在OS上先運行了VM,上面再以docker 運行 container
Advantage
- 靈活 (Flexibility):當開發人員建置應用程式,將其封裝到容器中,並提供給 IT 以在標準化平台上執行時,可減少部署應用程式的整體工作量,並簡化整個開發和測試週期。這也會增加開發與運作小組之間的共同作業和效率,以加快應用程式的傳遞速度。
- 可攜性 (Portability):容器可提供標準化格式,來封裝並保留執行所需應用程式的所有必要元件。這解決了「應用程式只能在我機器上運作」的常見問題,而允許 OS 平台之間和雲端之間的可攜性。不論容器何時在何處部署,都會在一致的環境中執行,即使更換部署也不會變更。現在從開發環境到實際執行環境,您都保有的一致格式。
- 可快速擴縮性 (Scalability):由於容器沒有 VM 的常見額外負荷情況 (包括個別的 OS 執行個體),因此在相同的基礎結構上可支援更多容器。容器的輕量本質表示其可以快速啟動和停止,並滿足快速擴大和縮小的案例。


Docker components
- Images
- Container
- Network
- Volume
- Docker host
- Docker repository
- Dockerfile
- Docker compose
Docker Commands

Container
Create container from image
Stop running container
Remove stop container
View containers
Inspect container
Image
View images
Pull image from dockerhub
Push image from dockerhub
Remove image
Build image from Dockerfile
Network
View networks
Create network
Remove network
Volume
View volumes
Create volume
Remove volume
Docker-compose
Create containers from yaml file
Remove the containers created from yaml file
- demo-app 只是拿來測試 flask-app 的 container 能否成功運作
-yml 檔 for docker-compose
-flask-app
-將 app 包成 image 的 Dockerfile
-pip install 的套件
Reference
container
docker