1. 程式人生 > >docker 容器匯入匯出(export/impo)教程

docker 容器匯入匯出(export/impo)教程

  1. 檢視當前執行的容器
[[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
  1. 匯出該容器
[[email protected] ~]# docker export 8aac100dd301 > container_run.tar
[[email protected] ~]# ls 
container_run.tar

匯出成功

  1. 將打出映象拷貝至另一臺伺服器
  2. 匯入容器
docker import  container_run.tar vision/centos:v1.0.1
  1. 檢視映象
[[email protected] envs]# docker images 
REPOSITORY                              TAG                          IMAGE ID            CREATED             SIZE
vision/centos                           v1.0.1                       5a16c9b914ff        About an hour ago   6.03GB
  1. 執行
[[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'.
  1. 原因分析
    系統在執行容器的時候預設加上了 /bin/bash 指令,匯出容器之後執行時系統不會自動加上該命令,所以導致出錯。
    在這裡插入圖片描述
  2. 解決方法
    在啟動命令結尾 追加 /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