最近被安排遷移開發服務器,肯定要遷移服務器的鏡像。導出的鏡像因為要網絡傳輸,所以就壓縮了一下。命令如下
docker save -o centos73.tar centos-php7312:v1.0 tar -cvzf centos73.tar.gz centos73.tar
網絡傳過來之后用gzip -d 解壓(問題出在這)后就用docker load導入 發現報錯,
open /var/lib/docker/tmp/docker-import-********/repositories: no such file or directory
然后嘗試用docker import ,竟然可以導入,就沒有關注。
之后就是用鏡象啟動容器,然后就報錯了
ERROR: for xxx Cannot start service xxx : OCI runtime create failed: container_linux.go:367: starting container process caused: exec: "sh": executable file not found in $PATH: unknown
ERROR: Encountered errors while bringing up the project.
按理說使用save命令導出的鏡像要用 load導入才對。
網上有說需要完全解壓再重新打包一下。
所以我考慮到可能解壓鏡像文件的方式有問題。
用tar -xvf 解壓了一下centos73.tar。再用load命令導入。這次成功了。問題排查了有一會,所以記錄一下。或許能夠幫助到網友。
總結:docker save 命令導出的鏡像格式是.tar 是打包文件。壓縮后帶.gz 后綴是壓縮文件。需要用tar 來解壓。