正常情况下,当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镜像命名规范(必须为小写)


Oops
9 声望7 粉丝

脑机接口狂热爱好者,EEG+Deeplearning实践者