Docker是一個(gè)開源的應(yīng)用容器引擎,它可以讓開發(fā)者將其應(yīng)用程序打包成一個(gè)最小化的容器,從而使得應(yīng)用可以被高效的部署和遷移。Docker的容器技術(shù)有三個(gè)核心組件,分別是Docker鏡像、Docker容器和Docker倉(cāng)庫(kù)。
Docker鏡像是一個(gè)只讀的模板,它可以用來(lái)創(chuàng)建Docker容器。通常來(lái)說(shuō),一個(gè)Docker鏡像包含了一個(gè)應(yīng)用程序以及運(yùn)行這個(gè)應(yīng)用程序所需要的所有依賴庫(kù)和環(huán)境變量等。
docker image pull ubuntu:16.04 # 從Docker Hub上拉取一個(gè)Ubuntu16.04的鏡像
Docker容器是由Docker鏡像創(chuàng)建并啟動(dòng)的可執(zhí)行的應(yīng)用程序的實(shí)例。每個(gè)Docker容器都是一個(gè)獨(dú)立的運(yùn)行環(huán)境,在容器內(nèi)運(yùn)行的應(yīng)用程序不會(huì)影響到其他容器或者宿主機(jī)。
docker container run -it --name mycontainer ubuntu:16.04 bash # 創(chuàng)建并啟動(dòng)一個(gè)名為mycontainer的容器
Docker倉(cāng)庫(kù)用來(lái)存儲(chǔ)Docker鏡像的集合,它可以用來(lái)分享和管理Docker鏡像。最為知名的Docker倉(cāng)庫(kù)是Docker Hub,其它的Docker倉(cāng)庫(kù)也可以被部署在私有云、本地網(wǎng)絡(luò)或者是第三方云平臺(tái)上。
docker login # 登陸Docker Hub賬號(hào) docker image tag ubuntu:16.04 myname/myimage:1.0 # 給Ubuntu16.04的鏡像打上一個(gè)標(biāo)簽 docker image push myname/myimage:1.0 # 將標(biāo)記的Ubuntu16.04的鏡像推送到Docker Hub