在使用Docker進(jìn)行應(yīng)用程序開(kāi)發(fā)、測(cè)試、部署時(shí),我們經(jīng)常需要將我們的Docker鏡像、容器導(dǎo)出和導(dǎo)入到別的機(jī)器或節(jié)點(diǎn)上。而Docker提供了一些命令來(lái)實(shí)現(xiàn)這樣的需求,方便我們打包和傳輸Docker鏡像、容器。
導(dǎo)出Docker容器或鏡像到本地文件系統(tǒng)中:
docker save imageName >imageName.tar docker save -o imageName.tar imageName
導(dǎo)入本地文件系統(tǒng)中的Docker容器或鏡像:
docker load< imageName.tar docker load -i imageName.tar
導(dǎo)出Docker容器或鏡像到遠(yuǎn)程倉(cāng)庫(kù):
docker push remote/repository:tag
從遠(yuǎn)程倉(cāng)庫(kù)導(dǎo)入Docker容器或鏡像:
docker pull remote/repository:tag
需要注意的是,在導(dǎo)出和導(dǎo)入Docker鏡像時(shí),我們可以通過(guò)指定格式和其他參數(shù)來(lái)控制是否導(dǎo)出和導(dǎo)入Docker鏡像的依賴(lài)關(guān)系、中間層等信息,以減少文件大小。
例如,查看Docker鏡像的依賴(lài)層次關(guān)系:
docker history imageName
當(dāng)導(dǎo)出Docker鏡像時(shí),我們可以使用不同格式的導(dǎo)出文件,如tar、zip、gzip等,并且可以指定是否導(dǎo)出Docker鏡像的完整層次結(jié)構(gòu):
docker save -o imageName.tar.gz imageName docker save imageName | gzip >imageName.tar.gz
Docker導(dǎo)入以及導(dǎo)出鏡像、容器等操作,能夠方便地將我們的Docker應(yīng)用程序部署到不同的環(huán)境中,也可以快速備份和傳輸,提高工作效率。