正常情况下,当build完成一个docker镜像之后,想要实现宿主机与docker进行交互式通过以下命令:docker run -it $docker_name:1.0 /bin/bash
若是docker image中所需数据集在宿主机中存储的情况下,如何进行访问呢?``
解决方案:docker run -it -v $path_to_host_data:$new_path_in_docker deep_sleepnet:1.0 /bin/bash
执行之后,相当于把此数据目录挂载在对应docker的目录中,用ls -lh
即可查看并访问所挂载数据。Dockerfile中最后一行运行相应的CMD ["python","test.py","--data-dir","$new_path_in_docker"]
更新一个由于粗心造成的bug
当尝试使用-v 参数进行挂载目录的时候:如下有两个目录同时挂载的时候docker run -it -v $path_to_host_data:$new_path_in_docker $path1_to_host_data:$new_path1_in_docker deep_sleepnet:1.0 /bin/bash
出现如下错误,docker: invalid reference format: repository name must be lowercase.
查看了半天,发现是忘记加 -v参数了(🤦♂️)修改后如下:docker run -it -v $path_to_host_data:$new_path_in_docker -v $path1_to_host_data:$new_path1_in_docker deep_sleepnet:1.0 /bin/bash
这里也提醒一下自己,注意docker镜像命名规范(必须为小写)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。