docker迁移+新建docker容器
首先输入命令:
docker ps -a
找到上一次运行的docker 的id(记下来,后面有用),然后运行它,比如,我用的是nvidia-docker:
docker run --runtime=nvidia -it --rm tensorflow/tensorflow:1.14.0-gpu
进入到docker之后,输入:
docker export a8b133a854a7 > tensorflow_docker.tar
这句是用来导出docker的image的,这里的a8b133a854a7
就是前文让记住的docker id,这样的话,稍等一会,命令结束后,退出docker就会发现,当前目录下面会出现tensorflow_docker.tar的文件。说明导出成功
然后这个镜像可以拷贝至其他机器,只要安装了docker,当你想再次部署额时候,首先输入:
cat tensorflow_docker.tar | docker import - tensorflow_training:20191115
这里的cat tensorflow_docker.tar
是解压的意思,|
是pipeline,tensorflow_training:20191115
中的tensorflow_training是镜像的名字,可以随便取,20191115是tag,你可以用它来标示版本号。
之后,输入:
docker run -it -v /data/username/tensorflow_training:/tensorflow_training -p 56999:56999 --name tensorflow_training tensorflow_training:20191115 /bin/bash
这样可以运行docker,这里的-it
表示交互式/终端,-v
表示要将宿主机的目录映射到docker,其中宿主机的目录是/data/username/tensorflow_training
,docker的目录是tensorflow_training
,-p 56999:56999
表示将宿主机的56999端口映射到docker的56999端口,--name tensorflow_training tensorflow_training:20191115
表示运行的docker名字及tag。
但是这样的话,你每次退出docker,docker就自动终止了。这里我们输入:
docker start dockerid
开启了docker之后,
找个地方新建个脚本,叫docker_run.sh,内容输入:
docker exec -ti dockerid /bin/bash
然后保存退出,终端输入:
chmod 777 docker_run.sh
给脚本添加执行权限,下次进入docker,只需在当前目录终端输入:
./docker_run.sh或者bash docker_run.sh
即可