Docker鏡像遠(yuǎn)程(離線)遷移實(shí)踐
一、大致步驟
- 把本地服務(wù)器的指定鏡像打包為tar格式的文件
- 把tar格式文件通過(guò)scp命令(linux自帶)拷貝到另一臺(tái)服務(wù)器
- 通過(guò)ssh遠(yuǎn)程控制服務(wù)器加載tar文件為鏡像
二、涉及工具:scp命令
命令介紹
SCP(Secure Copy ),是linux/unix系統(tǒng)下,基于ssh協(xié)議協(xié)議的文件加密傳輸命令。
他有一下特點(diǎn):
- 安全加密:依賴ssh協(xié)議(默認(rèn)22端口),全過(guò)程加密(先非對(duì)稱+對(duì)稱加密)
- 跨主機(jī)通用:本地->遠(yuǎn)程 遠(yuǎn)程->本地 遠(yuǎn)程->遠(yuǎn)程
- 易用性:linux自帶的命令,不用安裝默認(rèn)工具,且大部分服務(wù)器防火墻默認(rèn)允許scp文件傳輸,不需要額外配置防火墻
命令語(yǔ)法
scp [可選參數(shù)] 要傳輸?shù)谋镜匚募?目錄 遠(yuǎn)程用戶@遠(yuǎn)程IP:遠(yuǎn)程目標(biāo)路徑
- 可選參數(shù):-r可以遞歸傳輸文件
- 遠(yuǎn)程用戶:一般默認(rèn)
root,因?yàn)橹挥?code>root才有最高權(quán)限 - 遠(yuǎn)程IP:服務(wù)器的IP地址
- 遠(yuǎn)程目標(biāo)路徑:目標(biāo)服務(wù)器要下載該文件的文件夾路徑
三、實(shí)操
編寫bash腳本
這里可以不用腳本寫,按照命令一步步來(lái)也行,不過(guò)為了更好的演示步驟,俺在這里就通過(guò)腳本的方式呈現(xiàn)給大家:
#!/bin/bash
# 腳本名稱:transfer-docker-image.sh
#配置信息
REMOTE_USER="root" #遠(yuǎn)程服務(wù)器用戶名
REMOTE_IP="113.44.150.39" #遠(yuǎn)程服務(wù)器IP
REMOTE_PATH="/root/remote_scp" #遠(yuǎn)程服務(wù)器的文件夾地址
IMAGE_NAME="depoy-app:latest" #要傳輸?shù)溺R像
TAR_FILE="depoy-app.tar" # 要打包成的tar文件
echo "=== Docker鏡像傳輸開(kāi)始 ==="
# 1. 保存鏡像
echo "1. 保存鏡像到本地文件..."
docker save -o "$TAR_FILE" "$IMAGE_NAME"
echo " 文件大小: $(ls -lh "$TAR_FILE" | awk '{print $5}')"
# 2. 傳輸文件
echo "2. 傳輸?shù)竭h(yuǎn)程服務(wù)器..."
echo " 目標(biāo): $REMOTE_USER@$REMOTE_IP:$REMOTE_PATH/"
scp "$TAR_FILE" "$REMOTE_USER@$REMOTE_IP:$REMOTE_PATH"
# 3.驗(yàn)證傳輸是否正常
ssh "$REMOTE_USER@$REMOTE_IP" "ls -lh $REMOTE_PATH"
# 4. 在線解壓為鏡像
ssh "$REMOTE_USER@$REMOTE_IP" "docker load -i $REMOTE_PATH/$TAR_FILE"
注意:
每次執(zhí)行scp命令都要填寫遠(yuǎn)程服務(wù)器密碼,這是為了防止中間人攻擊(底層ssh協(xié)議)
使用演示
1、 執(zhí)行腳本
chmod +x transfer-docker-image.sh #賦予可執(zhí)行權(quán)限,即使不用bash命令,也可執(zhí)行bash腳本 bash transfer-docker-image.sh # 通過(guò)bash命令執(zhí)行bash腳本(保險(xiǎn)) === Docker鏡像傳輸開(kāi)始 === 1. 保存鏡像到本地文件... 文件大小: 502M 2. 傳輸?shù)竭h(yuǎn)程服務(wù)器... 目標(biāo): root@113.44.150.39:/root/remote_scp/ The authenticity of host '113.44.150.39 (113.44.150.39)' can't be established. ED25519 key fingerprint is SHA256:pXZUvDvhC0aVaE3cH8WNtn4LMf9IUk0W7DUsnN/5IMg. This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '113.44.150.39' (ED25519) to the list of known hosts. root@113.44.150.39's password: depoy-app.tar 100% 502MB 1.4MB/s 06:07 root@113.44.150.39's password: total 502M -rw------- 1 root root 502M Jan 31 16:21 depoy-app.tar root@113.44.150.39's password: Loaded image: depoy-app:latest
2、查看遠(yuǎn)程服務(wù)器,tar文件和鏡像已經(jīng)回顯:
pwd #查看遠(yuǎn)程服務(wù)器地址是否匹配 /root/remote_scp ls -lh total 502M -rw------- 1 root root 502M Jan 31 16:21 depoy-app.tar root@hcss-ecs-d15b:~/remote_scp# docker images REPOSITORY TAG IMAGE ID CREATED SIZE depoy-app latest 911decca4303 4 months ago 522MB
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
docker-compose如何定義一個(gè)橋接網(wǎng)絡(luò),并為該網(wǎng)絡(luò)配置一個(gè)IP地址池
在DockerCompose中定義橋接網(wǎng)絡(luò)并配置IP地址池,可以實(shí)現(xiàn)服務(wù)的自動(dòng)IP地址分配,通過(guò)定義網(wǎng)絡(luò)、指定子網(wǎng)范圍、設(shè)置網(wǎng)關(guān)和啟用自動(dòng)分配功能,可以輕松管理服務(wù)的網(wǎng)絡(luò)配置,確保IP地址在子網(wǎng)范圍內(nèi)且不與其他網(wǎng)絡(luò)沖突,以避免網(wǎng)絡(luò)沖突2025-01-01
Docker部署Gitea服務(wù)的實(shí)現(xiàn)
本文主要介紹了Docker部署Gitea服務(wù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2026-03-03
docker容器里執(zhí)行apt-get update慢的解決過(guò)程
這篇文章主要介紹了docker容器里執(zhí)行apt-get update慢的解決過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2026-03-03
Docker拉取與部署OpenJDK到實(shí)際應(yīng)用的完整流程
這篇文章主要介紹了Docker拉取與部署OpenJDK到實(shí)際應(yīng)用的相關(guān)資料,包括鏡像拉取、容器運(yùn)行、Java程序測(cè)試、Dockerfile構(gòu)建優(yōu)化、容器管理、Spring Boot應(yīng)用部署、數(shù)據(jù)持久化與網(wǎng)絡(luò)配置、常用問(wèn)題與解決方案以及最佳實(shí)踐總結(jié),需要的朋友可以參考下2025-11-11
docker 內(nèi)存監(jiān)控與壓測(cè)方式
這篇文章主要介紹了docker 內(nèi)存監(jiān)控與壓測(cè)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
docker使用registry搭建本地鏡像倉(cāng)庫(kù)實(shí)例詳解
這篇文章主要介紹了docker使用registry搭建本地鏡像倉(cāng)庫(kù)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
使用docker build kit構(gòu)建樹(shù)莓派上可用的Docker鏡像
這篇文章主要介紹了使用docker build kit構(gòu)建樹(shù)莓派上可用的Docker鏡像,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02

