2024年6月8日 星期六

[Linux]如何將A主機的docker image轉移到B主機,並在B主機中重新配置和執行該docker image?

這個需求來自於配置open-webui的docker image。經測試不同版本的open-webui後,其中0.1.121版本open-webui的使用體驗較佳,但該版本已無法重新dock pull拉取,因此就興起檔案複製貼上的想法,由另一台已配置0.1.121版本的A主機來轉移到需要配置的B主機。(OS: AGI真的是好物,依著需求並跟著AGI實作,總會學到很多~~)

操作環境如下:

1.主機A作業系統: Ubuntu 22.04 desktop
2.主機B作業系統: Ubuntu 24.04 server

將A主機的docker image轉移到B主機並配置執行的步驟如下:

1. 查詢主機A是否存在欲轉移的docker image並保存為.tar壓縮檔案

首先,查詢所有docker image
sudo docker images

在A主機中,建立一個新資料夾,並將docker image保存為一個.tar壓縮檔案
sudo docker save -o <path_to_output_file.tar> <image_name>

例如:
sudo docker save -o my_image.tar my_image:latest

2. 利用SFTP傳輸將.tar壓縮檔案到另一台主機

開啟終端命令列並進到SFTP對話 
sftp B主機username@B主機IP

在SFTP對話中,將A主機的.tar壓縮檔上傳到B主機
put my_image.tar /path/to/destination/

例如,將A主機的my_images.tar上傳到B主機的/home/user路徑中
put my_image.tar /home/user/ 

退出SFTP對話
bye

3. 在B主機上配置docker Image

進到B主機終端命令列中,執行下列指令來配置docker image
sudo docker load -i <path_to_tar_file>

例如:
sudo docker load -i /path/to/destination/my_image.tar

4. 確認和執行docker Image

利用下列指令確認B主機是否已配置該docker image
sudo docker images

執行docker image
sudo docker run -d <image_name>

例如:
docker run -d my_image:latest

沒有留言:

張貼留言