這篇文章主要是記錄在使用 docker load 命令的過程中遇到的坑,因為在網(wǎng)絡上沒有找到相關(guān)的資料,所以記錄下來,祭奠我浪費的6個小時。
首先,需求是在一個無外網(wǎng)環(huán)境中導入 docker images,一個可行的方法是將可用的鏡像打包成 tar 包,然后傳輸?shù)叫枰牡胤?,再重新?tar 包導入到 docker 中。
鏡像轉(zhuǎn)文件的命令是: docker save image > /root/image.tar?
文件轉(zhuǎn)鏡像的命令是: docker load < /root/image.tar? 或者 docker load -i /root/image.tar
坑 1 是:? requested load from stdin, but stdin is empty
結(jié)論 : docker load 的時候, < 誤寫成 >, 會出現(xiàn)這個錯誤,并且原 tar 包會被修改,修改后就不可用了
坑 2 是:?open /var/lib/docker/tmp/docker-import-054903443/repositories: no such file or directory
結(jié)論 : 如果你使用過坑 1 中的命令,那么即使你之后的命令都是正確的,你也會遇到上述錯誤,避免的辦法是不要輸錯命令。倘若你已經(jīng)輸錯了,那么唯一可用的方法是刪除當前的 tar 包,并且重新獲取 tar 包,如果不是就地編譯的 tar 包, 而是其他地方復制過來的,那么原 tar 包還是可用的。