Docker是一種容器化技術(shù),它可以讓應(yīng)用和它們所依賴的庫(kù)、配置文件和其他資源以一個(gè)可移植的方式打包在一起。那么,Docker真的可移植嗎?讓我們來(lái)看一下。
docker run -it ubuntu bash
運(yùn)行上面的命令,會(huì)啟動(dòng)一個(gè)Ubuntu容器,并在其中啟動(dòng)一個(gè)交互式的Bash終端。這個(gè)容器是基于Ubuntu操作系統(tǒng)構(gòu)建的,因此它包含了大部分標(biāo)準(zhǔn)的Linux工具和命令。
apt-get update apt-get install -y nginx
在容器中運(yùn)行上面的命令,會(huì)安裝Nginx Web服務(wù)器?,F(xiàn)在,我們來(lái)查看一下Docker容器中的文件系統(tǒng):
docker export $(docker ps -q | head -n 1) | tar tvf -
上面的命令將指定容器導(dǎo)出為tar歸檔格式,不包含Docker鏡像中暴露的元數(shù)據(jù)。然后使用tar命令查看歸檔文件的內(nèi)容。你會(huì)看到一個(gè)完整的Ubuntu操作系統(tǒng),包括Nginx二進(jìn)制文件和其他相關(guān)的庫(kù)和資源。
回答開頭的問(wèn)題,Docker容器是可移植的。一個(gè)Docker容器可以在任何支持Docker的操作系統(tǒng)上運(yùn)行,無(wú)論這個(gè)操作系統(tǒng)是在物理機(jī)上、虛擬機(jī)上還是云平臺(tái)上運(yùn)行的。