有时候需要换一台服务器运行自己的代码,但又不想重新配置环境,这时候就可以把自己的docker移到相应的服务器上去,有点即插即用的感觉。
假定现在要把服务器A上的docker复制到服务器B上……只需五步
step 1 在A上把当前的容器提交为一个镜像:
docker commit 容器名 镜像名
比如在命令行输入 sudo docker commit yutf gbl555
step 2 将镜像存为压缩文件
docker save 镜像名 > 文件名.tar
比如 sudo docker save gbl555 > gbl_docker.tar
step 3 将压缩文件复制到目标服务器B
scp -P 23333 本地文件的绝对路径 远程用户名@远程地址:远程目录
注意:-P 23333 指的是接受文件的服务器的端口号,如果两台服务器的端口号相同,则可省略该参数。
比如 scp gbl_docker.tar gm@10.12.6.115:/home/gm/gaobaoli/
step 4 在B上将压缩文件恢复为镜像
docker load <文件名.tar
比如 sudo docker load </home/gbl_docker.tar
至此镜像已经存在了,接下来就可以创建容器使用容器了
step 5 在服务器B中根据镜像重新运行起容器
sudo docker run或者sudo nvidia-docker run,后者支持GPU。
随着docker和nvidiadocker的版本不同,创建容器的命令略用不同,比如有的版本要写
# docker ce 19.03,nividia-docker2
docker run --gpus all # gpus all表示使用全部GPU 创建容器