Win10系统下Docker的安装使用,镜像的拉取及导出(二)

本文详细记录了将基于AMD64架构的Windows Docker镜像迁移到Linux ARM64服务器的过程,包括错误分析、解决方法和正确操作步骤。首先,由于原始镜像不兼容,导致容器启动失败。然后,通过重新拉取适用于ARM64架构的镜像并导出,成功创建和启动了容器。整个过程涉及Docker的tag、load、run、start及exec命令的使用,强调了镜像与服务器架构匹配的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本机是windows10/amd64
服务器是linux/arm64

错误镜像

  1. 将导出的centos.tar导入到服务器中
    导入tar包
  2. 加载导入的tar包docker load -i 绝对地址/目标tar
    (1) docker load -i /usr/local/bdsoft/centos.tar
    (2) docker load < /usr/local/bdsoft/centos.tar
    (3) 其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息
    加载tar包
  3. 发现REPSOITORY和TAG为NONE
    (1) docker tag [IMAGE ID] [REPOSITORY名]:[TAG标识]
    (2) docker tag 300e315adb2f centos:latest
    (3) 再次查看
    更改镜像仓库名称及版本
  4. 通过run命令创建一个新的容器(container)
    (1) docker run -itd --name centos centos:latest
    (2) 查看容器docker ps -a创建容器
  5. 通过start命令启动容器,并查看状态,依旧是Exited(1)状态
    (1) docker start [CONTAINER ID]
    (2) docker ps -a启动容器
  6. 进入容器,发现容器 is not running
    (1) docker exec -it [CONTAINER ID] /bin/bash
    进入容器

猜测镜像在本机拉取的时候没有指定版本,docker pull默认拉取根据当前的系统选择不同的镜像,本机是windows/amd64,而服务器是linux/arm64,尝试重新下载镜像并部署。

  1. 删除容器、镜像、tar包
    (1) 先将服务器上的容器和镜像删除
    (2) 删除容器docker rm [CONTAINER ID]
    docker rm ef402a9b5f44
    (3) 删除镜像docker rmi [IMAGE ID]
    docker rmi 300e315adb2f
    (4) 将服务器上的tar包移除掉
    删除容器及镜像

正确镜像

  1. 本机上重新拉取arm64的centos镜像,并导出tar包
    (1) 拉取镜像
    docker pull centos:latest@sha256:7723d6b5d15b1c64d0a82ee6298c66cf8c27179e1c8a458e71904
    (2) 导出tar包
    docker save a0477e85b8ae -o D:\centos.tar
    查找正确镜像版本
    查找正确镜像版本
    拉取及导出
  2. 导出完成后,再次导入到服务器中
    tar包导入服务器
  3. 加载导入的tar包docker load -i 绝对地址/目标tar
    docker load -i /usr/local/bdsoft/centos.tar
    加载导入的tar包
  4. 发现REPSOITORY和TAG为NONE
    (1) docker tag [IMAGE ID] [REPOSITORY名]:[TAG标识]
    (2) docker tag a0477e85b8ae centos:latest
    (3) 再次查看
    在这里插入图片描述
  5. 通过run命令创建一个新的容器(container)
    (1) docker run -itd --name centos centos:latest
    (2) 查看容器docker ps -a
    创建容器
  6. 通过start命令启动容器,并查看状态,状态更新为Up
    (1) docker start [CONTAINER ID]
    (2) docker ps -a启动容器
  7. 进入容器,成功进入
    docker exec -it [CONTAINER ID] /bin/bash
    进入容器
  8. 退出容器
    exit退出容器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值