Docker 是目前最火熱的容器化技術(shù),它可以將應(yīng)用程序和其依賴的庫(kù)打包在一個(gè)隔離的容器中,以便在不同的環(huán)境中運(yùn)行。常常我們需要升級(jí) Docker,又不希望升級(jí)后現(xiàn)有的容器都失效,因此我們需要保留已有的容器,下面我們來(lái)介紹如何進(jìn)行 Docker 升級(jí)并保留現(xiàn)有容器。
首先停止當(dāng)前所有運(yùn)行的容器: $ docker stop $(docker ps -aq) 然后備份 Docker 的鏡像和容器: $ tar cvzf docker-backup.tar.gz /var/lib/docker 也可以選擇只備份容器: $ docker export $(docker ps -q) >docker-export.tar 接下來(lái)升級(jí) Docker,假設(shè)我們要將當(dāng)前的 Docker 版本 18.03 升級(jí)到最新版本 20.10: $ sudo apt update $ sudo apt install docker-ce=20.10.0~ce~3-0~ubuntu 然后重新啟動(dòng) Docker: $ sudo systemctl restart docker 最后恢復(fù)容器和鏡像: $ docker load -i docker-backup.tar.gz 或者用以下命令恢復(fù)容器: $ cat docker-export.tar | docker import – mynewimage 現(xiàn)在你已經(jīng)成功升級(jí) Docker 并保留了現(xiàn)有容器,你可以繼續(xù)使用它們進(jìn)行開發(fā)和測(cè)試。
總結(jié):Docker 升級(jí)過(guò)程中需要保留現(xiàn)有容器,可以通過(guò)備份容器和鏡像后升級(jí) Docker,再恢復(fù)容器和鏡像來(lái)保留現(xiàn)有容器。這樣,我們就不會(huì)因?yàn)?Docker 升級(jí)而失去已有的容器,大大提高了開發(fā)效率。