渣渣兔 发表于 2024-6-20 14:56:19

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

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

[*]如果新服务器没有docker,则先举行docker安装:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

[*]打包旧服务器的容器为镜像:
docker commit dc8e61b7cc05test_513

[*]镜像生存为tar文件:
docker save test_513:latest > /home/chensongcan/test_513.tar

[*]scp将旧服务器的镜像传到新的服务器上(在新服务器上执行该下令)
scp -r -P 端口号 原服务器账号@ip:tar文件地址 文件保存在新服务器地址

[*]新服务器上解压tar文件
docker load -i test_513.tar

[*]docker images
检察镜像是否传输乐成(发现镜像名称和标签都为None)
docker images

[*]复制旧服务器的镜像名称和标签(非必须)
docker tag 新服务器镜像id 旧服务器镜像名称:标签

[*]docker run启动新容器,可以愉快的玩耍了
docker run -tid --name test -v /data:/data test_513:latest bash
PS: 1. 启动gpu 容器,须要加这个参数 --gpus all
2. 增加–shm-size 100G扩大shm-size
问题1:
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 “”
docker run -tid --name test --entrypoint "" --gpus all --shm-size 100G -v /data:/data test_513:latest bash
问题2:
nvidia-smi发现看不到GPU的基本信息,啥都没返回。
办理方法:
须要安装 nvidia-docker:
#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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Docker 容器在不同服务器中的迁移