【學習】Docker
Published in
4 min readJan 30, 2020
Ref
Note
Docker 三元素包含 Dockerfile、Docker 映像檔(Image)以及 Docker 容器(Container)
鯨魚背上的貨櫃:Docker 容器 → Docker container
- 一般而言,一個容器裡通常會包含了一個完整的 Application
- Docker 的容器就是這樣的一個概念,幫你事先將一個 App 所需要的所有環境,包含作業系統 OS 都「容納」在一起。
- 因為連 OS 都被包起來了,實際上每個容器(container)的執行環境都是自給自足的(self-contained)
- Docker 幫我們抽象化在任何 OS 上建置環境的工作。只要給 Docker 一個容器,它就能在任何地方啟動該容器以供你使用。
貨櫃(Docker 容器)從哪來 → Dockerfile
- 要產生一個新的 Docker 容器,Docker 需要一份「環境安裝步驟書」來讓它幫我們自動地建置容器內的環境
- 參考 Dockerfile
追求規模性:Docker 映像檔的誕生 → Docker image
- Docker 可以事先用這個 Dockerfile 把建置環境所需的步驟先做好一遍,然後把該環境「拍張照」,存成一個 Docker 映像檔(image)後等待之後的使用
- 因為我們已經有一個環境的快照(Snapshot),Docker 就能利用該映像檔,快速地啟動 1 個(或 100 個)相同的容器給你
快速體驗
docker pull tensorflow/tensorflow
docker run -it -p 1234:8888 tensorflow/tensorflow
docker pull 將 image 拉下來
docker run 則是跑一個環境出來
利用 Docker 分享你的成果(這我覺得很聰明!)
事先將所有此 App 需要的環境用一個 Dockerfile 定義、全部包在一個 Docker 映像檔後分享在 Docker Hub 上面。
任何想要使用此 App 的人,只需要利用 Docker 輸入兩行指令(參考本篇 Ref 文章):
docker pull leemeng/cat
docker run -it -p 2468:5000 leemeng/cat接著他們就能在瀏覽器輸入
localhost:2468
來看到我的 App: