在傳統(tǒng)的虛擬化模式下,每個(gè)虛擬化實(shí)例都需要一個(gè)完整的操作系統(tǒng)。但是,Docker的運(yùn)行方式和傳統(tǒng)的虛擬化方式不同。Docker不需要操作系統(tǒng)來(lái)運(yùn)行容器。
Docker的運(yùn)行方式基于操作系統(tǒng)級(jí)別的虛擬化,也稱為容器化。Docker容器是通過(guò)對(duì)宿主機(jī)操作系統(tǒng)的抽象層來(lái)實(shí)現(xiàn)的,使得容器可以獨(dú)立運(yùn)行,但與宿主機(jī)共享同一個(gè)內(nèi)核。這樣一來(lái),Docker容器就不需要安裝完整的操作系統(tǒng)。相反,它們只需要容器中運(yùn)行所需的最小化操作系統(tǒng)。
FROM alpine:3.7 RUN apk add --no-cache python3 CMD ["python3"]
這是一個(gè)簡(jiǎn)單的Dockerfile,它基于Alpine Linux鏡像,并使用apk包管理工具安裝了Python3。該Dockerfile是輕量級(jí)的,只有2.69 MB。這是因?yàn)锳lpine Linux本身就是一個(gè)輕量級(jí)Linux發(fā)行版,采用musl libc庫(kù)和busybox工具包。它專注于提供一個(gè)安全可靠的系統(tǒng),并最大限度地減少開(kāi)銷。
使用Docker容器而不是傳統(tǒng)的虛擬化方式的好處是顯而易見(jiàn)的。Docker容器更加輕量級(jí),具有更快的啟動(dòng)時(shí)間和更小的內(nèi)存開(kāi)銷。它們還可以更好地隔離不同的應(yīng)用程序,并提供更好的可移植性和可擴(kuò)展性。