Docker 容器在不同服务器中的迁移

假如我们有一台新的服务器,想把旧服务器的容器迁移到新服务器中,这样新服务器就不用重新配置环境了,该怎么做呢?

  1. 如果新服务器没有docker,则先进行docker安装:
python 复制代码
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
  1. 打包旧服务器的容器为镜像:
python 复制代码
 docker commit dc8e61b7cc05  test_513
  1. 镜像保存为tar文件:
python 复制代码
docker save test_513:latest > /home/chensongcan/test_513.tar
  1. scp将旧服务器的镜像传到新的服务器上(在新服务器上执行该命令)
python 复制代码
scp -r -P 端口号 原服务器账号@ip:tar文件地址 文件保存在新服务器地址
  1. 新服务器上解压tar文件
python 复制代码
docker load -i test_513.tar
  1. docker images查看镜像是否传输成功(发现镜像名称和标签都为None)
python 复制代码
docker images
  1. 复制旧服务器的镜像名称和标签(非必须)
python 复制代码
docker tag 新服务器镜像id 旧服务器镜像名称:标签 
  1. docker run启动新容器,可以愉快的玩耍了
python 复制代码
docker run -tid --name test -v /data:/data test_513:latest bash

PS: 1. 启动gpu 容器,需要加这个参数 --gpus all

  1. 增加--shm-size 100G扩大shm-size

问题1:

python 复制代码
docker: Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/.r/r": stat /.r/r: no such file or directory: unknown.

解决方法:

在run的时候加上: entrypoint ""

python 复制代码
docker run -tid --name test --entrypoint "" --gpus all --shm-size 100G -v /data:/data test_513:latest bash

问题2:

nvidia-smi发现看不到GPU的基本信息,啥都没返回。

解决方法:

需要安装 nvidia-docker:

python 复制代码
#nvidia-docker2 安装 【CUDA 10 必须要用 nvidia-docker2 不然启动不了】
	distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
	   && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \
	   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
	#如果添加不了 公钥 key ,则使用下面的方法添加
	apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 82EB5823F4FE239D
	#更新源
	apt-get update
	#安装
	apt-get install -y nvidia-docker2
	#重启 docker
	service docker restart
相关推荐
凯子坚持 c27 分钟前
Docker 容器全生命周期管理与运维命令深度解析
运维·docker·php
java_logo1 小时前
MILVUS Docker 容器化部署指南
运维·人工智能·docker·容器·prometheus·milvus
箬敏伊儿1 小时前
Apple M2 + Docker + MySQL 轻量配置全教程
数据库·mysql·docker
@YDWLCloud1 小时前
用腾讯云国际版搭建全球加速架构:5 分钟实现多地访问提速
服务器·架构·云计算·github·腾讯云
步步为营DotNet2 小时前
深入理解IAsyncEnumerable:异步迭代的底层实现与应用优化
java·服务器·数据库
装不满的克莱因瓶2 小时前
【Java架构 搭建环境篇三】Linux安装Git详细教程
java·linux·运维·服务器·git·架构·centos
wanhengidc2 小时前
云手机深度解析其原理与功能
服务器·科技·游戏·智能手机
源代码•宸2 小时前
分布式缓存-GO(项目整体架构简介、Ubuntu 22.04 64位安装GoLang、安装Docker、解决Go module 的依赖问题)
经验分享·分布式·后端·ubuntu·缓存·docker·golang
黑客思维者2 小时前
突破 Python 多线程限制:GIL 问题的 4 种实战解法
服务器·数据库·python·gil
至善迎风2 小时前
Linux 服务器安全防护工具完全指南
linux·服务器·安全·防火墙