1. 備份容器
首先,為了備份Docker中的容器,我們會想看看我們想要備份的容器列表。要達成該目的,我們需要在我們運行着Docker引擎,並已創建了容器的Linux機器中運行 docker ps 命令。
sudo docker ps --因為我本地的虛擬機沒有配置docker的全局變量,所以用sudo 執行
該命令會生成一個作為Docker鏡像的容器快照,我們可以通過運行 docker images 命令來查看Docker鏡像,如下。
sudo docker commit -p 6fd1775e7dd0 postgres-backup1 -p 容器id 備份鏡像名稱
正如我們所看見的,上面做的快照已經作為Docker鏡像保存了。現在,為了備份該快照,我們有兩個選擇,一個是我們可以登錄進Docker注冊中心,並推送該鏡像;另一個是我們可以將Docker鏡像打包成tar包備份,以供今后使用。
如果我們想要在Docker注冊中心上傳或備份鏡像,我們只需要運行 docker login 命令來登錄進Docker注冊中心,然后推送所需的鏡像即可。可以參考鏈接:https://www.jb51.net/os/other/378697.html
本地保存:
sudo docker save -o ~/postgres.tar postgres-backup1 --將postgres-backup1鏡像保存為postgres.tar
2. 恢復容器
恢復容器,遷移在下一個段落。
sudo docker load -i ~/postgres.tar
用 docker images 查看docker鏡像,運行還原好的docker容器
sudo docker run -d -p 5432:5432 postgres-backup
3、Linux遷移文件
遷移容器同時涉及到了上面兩個操作,備份和恢復。我們可以將任何一個Docker容器從一台機器遷移到另一台機器。在遷移過程中,首先我們將把容器備份為Docker鏡像快照。然后,該Docker鏡像或者是被推送到了Docker注冊中心,或者被作為tar包文件保存到了本地。如果我們將鏡像推送到了Docker注冊中心,我們簡單地從任何我們想要的機器上使用 docker run 命令來恢復並運行該容器。但是,如果我們將鏡像打包成tar包備份到了本地,我們只需要拷貝或移動該鏡像到我們想要的機器上,加載該鏡像並運行需要的容器即可。。
3.1、安裝vsftp 用於上傳和下載
sudo apt-get install vsftpd
其它的配置參考:https://www.cnblogs.com/jikexianfeng/p/5862167.html
這里主要是講遇到的一個問題,糾結了半天。
用FTP上傳工具鏈接Linux 虛擬機時候,發現上傳文件可以上傳下去,但是剛剛備份的postgres.tar文件下載不下來,一直報:550 Failed to open file.最后發現是文件權限的問題。
因為文件的權限是root,所以無法下載。解決方法更改文件的權限,這樣就可以下載了。改變文件權限詳細了解見:https://www.cnblogs.com/DawaTech/p/7249734.html
sudo change test postgres.tar--修改postgres.tar的擁有者為test用戶(我本地虛擬機的用戶叫test,根據實際更改用戶名)
3.2、 Windows訪問ubuntu共享文件夾
因為我本地虛擬機是ubuntu,其它Linux命令操作,需要根據實際去了解一下。
1、對要共享的文件夾右擊->Local Network Share(本地文件夾共享)
2、選擇Share this folder(共享此文件夾),提示安裝共享服務,安裝共享服務
安裝完成后,點擊共享。這樣就能完成共享了。
在windows下文件夾填寫:\\192.168.12.131\share,這樣就能完成訪問。如果提示不能訪問,將share上面的共享屬性改成“允許匿名登錄”,這樣就可以了,當然這個安全性有點低。
共享路徑設置可以參照鏈接:https://www.cnblogs.com/heguoyuan/p/9902446.html