docker镜像转移,mac Linux

起因是镜像在互联网,而公司内网没有网络,需要跨平台转移,且系统不一样,一个Arm,一个linux。正常进行后,报错系统编译问题,特将处理过程总结一下

在 mac在pull镜像的时候需要设置参数,确保下载的镜像,可以转移到linux 系统。

复制代码
在本机使用,拉取的时候会自动选择,无需额外参数
docker pull  registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.10

未来要在Linux使用(但当前电脑是arm,非amd64)
docker pull --platform=amd64  registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.10

docker pull --platform=amd64 你的dockerinfo

在已有docker镜像的情况下,进行docker镜像的打包转移

1、docker 查询到镜像的repository \tag

终端黑窗口输入:docker images

复制代码
REPOSITORY                                             TAG                                    IMAGE ID       CREATED       SIZE
registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr   funasr-runtime-sdk-online-cpu-0.1.10   e80476b001ab   3 weeks ago   3.16GB
registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr   funasr-runtime-sdk-cpu-0.4.5           ba8201c1d1d0   3 weeks ago   3.16GB

2、打包:docker save 你的repository:tag > /images/your.tar

复制代码
docker save registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.10 > /images/FUNASR.tar
复制代码
或 加参数o 
runoob@runoob:~$ docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3

如果已有tar镜像文件,需要覆盖。

3、将docker镜像拷贝到到对应机器(网络通的话可以 scp、跨物理机就u盘),并开启docker

4、导入镜像

docker load <

检查是否导入成功,docker images 查看

检查是否有对应仓库名和标签,没有的话加上标签(如代码快所示,如果没有标签很可能系统架构不同,需要注意之后是否报错,一般都会带入信息的)

复制代码
(base) yideMacBook-Pro:docker1 yi$ docker load < funasr-runtime-sdk-cpu-0.04.4.tar 
3c0d1f9e43ce: Loading layer [==================================================>]  11.59MB/11.59MB
f44c8297ef50: Loading layer [==================================================>]   5.12kB/5.12kB
27f7de283f3b: Loading layer [==================================================>]  5.632kB/5.632kB
Loaded image ID: sha256:df2f952628f3f909859bce34323c14fa05f8b9bf6254e46958fb0239ce98d814

(base) yideMacBook-Pro:docker1 yi$ docker images
REPOSITORY                                             TAG                                    IMAGE ID       CREATED        SIZE
registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr   funasr-runtime-sdk-online-cpu-0.1.10   e80476b001ab   3 weeks ago    3.16GB
registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr   funasr-runtime-sdk-cpu-0.4.5           ba8201c1d1d0   3 weeks ago    3.16GB
<none>                                                 <none>                                 df2f952628f3   3 months ago   3.06GB

查看镜像是否导入成功

5、在容器中运行镜像

复制代码
docker run -p 10096:10095 -it --privileged=true \
  -v $PWD/funasr-runtime-resources/models:/workspace/models \
  registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.10

-it:表示交互式终端的容器,非启动后立刻结束的容器,

itd -d: 后台运行容器,并返回容器ID;

-p 10096:10095 :指定端口映射,格式为:主机(宿主)端口:容器端口(注意:-P: 大写,随机端口映射,容器内部端口随机映射到主机的端口)

--name="nginx-lb": 为容器指定一个名称

registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.10:容器是用哪个镜像启动的(一个容器,必须依赖一个镜像启动)

--privileged=true选项运行容器时,Docker会赋予容器几乎与主机相同的权限(允许容器访问主机的所有设备)

**--volume , -v:**绑定一个卷 前面是挂载的宿主机,后面是镜像内

**-m :**设置容器使用内存最大值;

参考:将docker镜像拷贝到其他电脑运行_docker保存的镜像能烧u盘吗-CSDN博客

docker镜像支持arm64平台

附录:下载镜像的时候会用到。docker pull --platform=amd64 dockerinfo

复制代码
docker pull --platform=amd64 registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.10

常见架构名称的等价关系清单:

ARMv8 = ARM64 = AArch64 (如苹果的M1芯片)

x86_64 = x64 = amd64,x86_64 (也称为AMD64或x64),Linux服务器

ARMv7 = armv7l = ARM

x86 = x86_32

mac 查询架构

相关推荐
骇客野人7 分钟前
Redis 完整安装部署方案(Linux,分【源码编译】+【Docker】两种,推荐生产用源码,测试快速用 Docker)
运维
九皇叔叔3 小时前
Kubernetes 资源管理方式详解:命令式与声明式管理
docker·容器·k8s
蓝速科技3 小时前
会议室门牌公告通知发布选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
chicheese4 小时前
Linux 面试速查表:从初级到高级,附高频场景答题模板
linux·运维
Linux-lucky4 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
智能运维指南5 小时前
2026年ITSM系统怎么选?四款主流方案与五维评估模型
运维·itsm·嘉为蓝鲸
我命由我123455 小时前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
骇客野人5 小时前
测试环境MySQL迁移Vastbase(海量数据库)完整改造与落地实施方案
运维·服务器
迪康Defender6 小时前
终端安全实战:如何高效解决企业U盘泄密与管控难题
运维·网络·安全·web安全·终端安全管理
zly35006 小时前
VMware Converter Standalone 物理机转化为虚拟机后源1硬盘变成了2个硬盘(2个硬盘文件)虚拟机无法启动。
linux·运维·服务器