docker 容器匯入匯出(export/impo)教程
阿新 • • 發佈:2018-12-22
- 檢視當前執行的容器
[[email protected] ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8aac100dd301 1e20acd39495 "/bin/bash" 4 days ago Up 44 hours 0.0.0.0:8002->8888/tcp cuda
- 匯出該容器
[[email protected] ~]# docker export 8aac100dd301 > container_run.tar
[[email protected] ~]# ls
container_run.tar
匯出成功
- 將打出映象拷貝至另一臺伺服器
- 匯入容器
docker import container_run.tar vision/centos:v1.0.1
- 檢視映象
[[email protected] envs]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE vision/centos v1.0.1 5a16c9b914ff About an hour ago 6.03GB
- 執行
[[email protected] envs]# docker run --runtime=nvidia -d -it --name vision_run_1.0.1 -e NVIDIA_VISIBLE_DEVICES=0 -e NVIDIA_DRIVER_CAPABILITIES=compute,video,utility --volume /usr/local/cuda/lib64:/usr/local/cuda/lib64 -v /output:/home/out 5a16c9b914ff
發現啟動不了,報錯:
docker: Error response from daemon: invalid restart policy '--runtime=nvidia'.
- 原因分析
系統在執行容器的時候預設加上了 /bin/bash 指令,匯出容器之後執行時系統不會自動加上該命令,所以導致出錯。
- 解決方法
在啟動命令結尾 追加 /bin/bash 指令
docker run --runtime=nvidia -d -it --name vision_run_1.0.1 -e NVIDIA_VISIBLE_DEVICES=0 -e NVIDIA_DRIVER_CAPABILITIES=compute,video,utility --volume /usr/local/cuda/lib64:/usr/local/cuda/lib64 -v /icooper/vision_output:/icooper 5a16c9b914ff /bin/bash