本机是windows10/amd64
服务器是linux/arm64
错误镜像
- 将导出的centos.tar导入到服务器中
- 加载导入的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信息
- 发现REPSOITORY和TAG为NONE
(1)docker tag [IMAGE ID] [REPOSITORY名]:[TAG标识]
(2)docker tag 300e315adb2f centos:latest
(3) 再次查看
- 通过run命令创建一个新的容器(container)
(1)docker run -itd --name centos centos:latest
(2) 查看容器docker ps -a
- 通过start命令启动容器,并查看状态,依旧是Exited(1)状态
(1)docker start [CONTAINER ID]
(2)docker ps -a
- 进入容器,发现容器 is not running
(1)docker exec -it [CONTAINER ID] /bin/bash
猜测镜像在本机拉取的时候没有指定版本,docker pull默认拉取根据当前的系统选择不同的镜像,本机是windows/amd64,而服务器是linux/arm64,尝试重新下载镜像并部署。
- 删除容器、镜像、tar包
(1) 先将服务器上的容器和镜像删除
(2) 删除容器docker rm [CONTAINER ID]
docker rm ef402a9b5f44
(3) 删除镜像docker rmi [IMAGE ID]
docker rmi 300e315adb2f
(4) 将服务器上的tar包移除掉
正确镜像
- 本机上重新拉取arm64的centos镜像,并导出tar包
(1) 拉取镜像
docker pull centos:latest@sha256:7723d6b5d15b1c64d0a82ee6298c66cf8c27179e1c8a458e71904
(2) 导出tar包
docker save a0477e85b8ae -o D:\centos.tar
- 导出完成后,再次导入到服务器中
- 加载导入的tar包docker load -i 绝对地址/目标tar
docker load -i /usr/local/bdsoft/centos.tar
- 发现REPSOITORY和TAG为NONE
(1)docker tag [IMAGE ID] [REPOSITORY名]:[TAG标识]
(2)docker tag a0477e85b8ae centos:latest
(3) 再次查看
- 通过run命令创建一个新的容器(container)
(1)docker run -itd --name centos centos:latest
(2) 查看容器docker ps -a
- 通过start命令启动容器,并查看状态,状态更新为Up
(1)docker start [CONTAINER ID]
(2)docker ps -a
- 进入容器,成功进入
docker exec -it [CONTAINER ID] /bin/bash
- 退出容器
exit