# Docker Notebook :book: Auto-generated Table of Content [ToC] :memo: 參考資料 - [Docker&Docker-compose by MCL](https://hackmd.io/@eto0110/HkKyZHQUi) - [Docker by MCL](https://codimd.mcl.math.ncu.edu.tw/1sdo-m91QemDw5nEJI0Esg) - [Docker -- 從入門到實踐](https://philipzheng.gitbook.io/docker_practice/) - [Docker Apache建一個hello world的Web](https://zhuanlan.zhihu.com/p/106587011) - [使用Dockerfile建置](https://peihsinsu.gitbooks.io/docker-note-book/content/docker-build.html) ## What is Docker ? Docker 是實作輕量級的作業系統虛擬化解決方案,現在對於這類技術有個專有名詞 容器 (Container)。 Docker 的基礎是 Linux 容器(LXC)等技術。在 LXC 的基礎上 Docker 進行了進一步的封裝,讓使用者不需要去關心容器的管理,使得操作更為簡便。使用者操作 Docker 的容器就像操作一個快速輕量級的虛擬機一樣簡單。 ## Why we need Docker ? ### 虛擬化目的 **常見的虛擬化目的有:** - 獨立的環境 - 部分軟體一個系統只能有一個 - 硬體環境需求 - 只有一台電腦,想要做到多個功能,如: NAT、防火牆、私有網域 ### 傳統技術(虛擬機) v.s 虛擬化技術(容器) | 特性 | 容器 | 虛擬機 | |------|-----|------| | 啟動 | 秒級 | 分鐘級 | | 硬碟容量 | 一般為 MB | 一般為 GB| | 效能 | 接近原生 | 比較慢 | | 系統支援量 |單機支援上千個容器|一般幾十個| |部署|腳本化快速部署困難|可以用腳本快速部署| 傳統虛擬化  Docker  ## How does Docker work ? ### **Docker 的三個基本概念** - **映像檔 Image** Docker 映像檔就是一個唯讀的模板,可以用來建立 Docker 容器。 - **容器 Container** Docker 利用容器來執行應用。容器是從映像檔建立的執行實例。它可以被啟動、開始、停止、刪除。每個容器都是相互隔離的、保證安全的平台。 - **倉庫 Repository** 倉庫是集中存放映像檔檔案的場所。實際上,倉庫註冊伺服器上往往存放著多個倉庫,每個倉庫中又包含了多個映像檔,每個映像檔有不同的標籤(tag)。 ### **Docker的運作模式** ```sequence Dockerfile->Image: build Repository->Image: pull Image->Container: run Image->Discard: rmi (remove image) Container->Discard: rm (remove) Not working container->Container: start Container->Not working container: stop ```  ## Docker Command - `docker search` : - `docker pull` : - `docker run` : - `docker ps` : process status - `-a` : all - `docker rm` : remove - [Docker 移除 Containers、Images、Volumes 與 Networks 的方法](https://blog.clarence.tw/2019/09/10/docker-removing-containers-images-volumes-and-networks/ ) - `docker attach` : https://joshhu.gitbooks.io/dockercommands/content/Containers/IntoContainers.html https://yingclin.github.io/2018/docker-basic.html
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up