阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈

Docker 無處不在

您需要了解的有關 docker 的所有訊息都在這篇文章中。別擔心 - 我會保持非常簡短和簡潔 ⚡

我將引導您了解這些概念:容器、圖像等。然後我們將編寫自己的“Dockerfile”來容器化一個非常簡單的 Python 應用程式!

原文出處:https://dev.to/dhravya/docker-explained-to-a-5-year-old-2cbg

什麼是docker?

Docker 是一種“容器化”應用程式的方法(將程式碼放入可以獨立工作的盒子中)。它神奇地製造了一台虛擬計算機,但你猜怎麼著——它們並不是真正的虛擬計算機。

容器是沒有主機操作系統的盒子,因此它們獨立於執行的設備。

可以這樣想——有一隻蜜蜂只喜歡住在自己的蜂巢裡,如果它住在其他地方就無法工作。你只需將蜜蜂困在一個看起來和摸起來都像蜂窩的盒子裡。這就是容器化。

容器是使用“Images”製作的

在我的機器上工作

Docker 鏡像

Docker 鏡像就像模板——一本 擁有全部製造流程說明 的工藝手冊。或者,換句話說,它包含一組用於建立容器的指令。

但是如何製作這些圖像(以便稍後製作容器)?

這是使用 Dockerfile 完成的。

關於 Dockerfiles

Dockerfile 是一個文本文件,其中包含用戶可以在命令行上呼叫來組裝映像的所有命令。

好吧,讓我們一起製作一個 Dockerfile。

現在,我們將從 docker 開始動手!

在您的設備上快速下載 docker:https://www.docker.com/get-started

現在您已經有了它,讓我們編寫一個簡單的 Flask 應用程式並將其容器化!

這是一個非常簡單且最小的 flask 應用程式

圖片描述

現在,儘管這可能非常基本,但它實際上需要很多東西才能執行:

  • Python 3.9
  • Flask(執行“pip install Flask”)
  • 暴露於端口5000

有些程序可能只能在特定的操作系統上執行 - 例如僅限 Windows 或僅限 Linux 的東西。

所有這些問題都可以通過編寫一個簡單的 dockerfile 來解決,該文件為我們設置了一個 docker 鏡像。

所以你需要建立一個名為“Dockerfile”的文件(確切地說,沒有任何文件擴展名)

這是一個演練:

  • 使用 FROM 使用 python 基礎鏡像

  • 使用 COPY 將 app.py 文件複製到容器中

  • 使用RUN來pip安裝flask

  • 當容器啟動時使用CMD執行“python app.py”

就這麼簡單!

Dockerfile

小修正:該文件應命名為 Dockerfile

建置鏡像並執行容器

現在,使用“docker build”命令建置 docker 映像,然後使用“docker run .”命令執行該映像。

還可以使用--tag給鏡像起個名字,方便自己以後執行

docker build --tag flask .
docker run --name flask -p 5000:5000 flask

這裡,--name是要執行的容器的名稱(我將其命名為flask),-p將docker CONTAINER的端口設置到您的機器,這樣您就可以在localhost上看到您的應用程式。最後,名稱中的“flask”是要執行的鏡像的名稱。

更多命令

大概就是這些!

“docker ps”命令獲取正在執行的容器的列表,

“docker ps -a”獲取所有容器的列表

“docker images”獲取圖像列表

“docker --help”獲取所有命令的列表

多多嘗試看不同指令吧!


共有 5 則留言

既然都要介紹了,可以把容器(Container)的發展史講清楚一點...它的出現是實務上為了處理哪些問題?
例如:docker與現在的上游moby是啥關係? podman呢?(它解決了啥docker的痛點) LXC呢? 還有哪些容器的實作? 各有哪些優/缺點? 適用場景?

按讚的人:

感謝留言...感謝參與討論!
這篇是我看到國外的入門介紹文章,順手翻譯
你說的那些東西,都是很好的方向,但我自己也還不熟
有機會的話,也歡迎您針對那些方向寫點文章,可以造福很多人!
(本站支援 markdown 格式寫作,您可以試試看!)

等有空吧!,再找個時間來慢慢填坑~

按讚的人:

然後最簡短的介紹docker,我先用三個字當作伏筆:虛擬化

按讚的人:

精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈