如何在主机操作系统和docker容器之间共享文件夹
问题描述:
我已经创建了一个docker映像的卷。该码头工人形象是:如何在主机操作系统和docker容器之间共享文件夹
REPOSITORY TAG IMAGE ID CREATED SIZE
gcr.io/tensorflow/tensorflow latest-gpu 7f09e75cdc12 4 months ago 1.289 GB
和容器体积:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
e99c80d2d53e gcr.io/tensorflow/tensorflow:latest-gpu "/run_jupyter.sh" 21 hours ago Up 11 minutes 6006/tcp, 0.0.0.0:8888->8888/tcp deep
我需要将主机Ubuntu 16.04
OS和泊坞窗容器之间共享文件夹。 我跑这个命令这样做:
搬运工运行-v /家庭/柯塔娜/深学习/:/家庭gcr.io/tensorflow/tensorflow:latest-gpu
这didnt导致文件夹被加载到容器deep
中。在此之后我不知道该做什么,并且对docker中的容器内容真的很陌生。请解释你的答案。
编辑: 我删除的容器,然后跑了这些命令:
docker run -v /home/cortana/deep-learning/:/home gcr.io/tensorflow/tensorflow:latest-gpu
nvidia-docker run -p 8888:8888 --name deep gcr.io/tensorflow/tensorflow:latest-gpu
nvidia-docker exec -it deep bash
没有在容器中的/home/
文件夹名为deep-learning
文件夹。我在这里做错了什么?
答
我没有注意到要更改正在运行的容器上的已装入卷的API。您销毁现有容器(docker stop
和docker rm
),并使用正确的配置创建一个新的容器(docker run
)。如果你发现自己想维护一个容器,升级容器内部的应用程序或内部的数据,那么很可能你试图重新创建一个虚拟机,而不是隔离一个流程,这是一种反模式。
从您的编辑中,您没有创建/ home/deep-learning文件夹,您创建了/ home文件夹。您似乎还创建了第二个名为deep的容器,没有任何卷装,并将其放入该容器中。为了与将/ home /深学习容积的容器安装和深厚的名称,运行它想:
docker run -v /home/cortana/deep-learning:/home/deep-learning \
-p 8888:8888 --name deep gcr.io/tensorflow/tensorflow:latest-gpu
我不知道很多关于泊坞窗或虚拟化。我只想使用我使用docker安装的tensorflow库,并且想要使用基于GUI的编辑器来编辑Docker容器中的文件。你建议我应该做什么? –
我已经更新了我的问题,并提供了对您的修改的回复。 – BMitch
非常感谢。现在就开始工作吧! –