最近我在使用Docker時,突然發現升級容器之后,原先的容器文件不見了,讓我甚是煩惱。
$ docker stop container_name $ docker rm container_name $ docker pull image_name $ docker run -d --name container_name image_name
為了解決這個問題,我上了互聯網查找了解決方法,原來是由于Docker在升級容器的時候,并不會自動刪除舊的容器文件,而是將其放到了一個不存在的“無名稱容器”中,導致我們看不到,但卻占用了計算機的存儲資源。
為了解決這個問題,我們可以通過以下步驟找回我們的容器文件。
$ docker ps -a
使用上述命令可以查看所有容器的ID,找到你想要找回的容器的ID,并備份它的數據。
$ docker cp container_id:/path/to/data /local/path/to/backup
接著,我們使用以下命令進行刪除無名稱容器的操作。
$ docker rm $(docker ps -qa --no-trunc --filter "status=exited")
最后,我們可以使用以下命令重新導入我們備份的數據到新的容器中。
$ docker create --name new_container_name image_name $ docker start new_container_name $ docker cp /local/path/to/backup new_container_name:/path/to/data
通過以上步驟,我們就可以順利的找回升級丟失的容器文件了,也能保證我們的數據不會在Docker升級時遭到損失。