我对Vagrant,其Docker配置程序和Docker的交互方式有一个奇怪的问题,我不确定如何进行。 (与Vagrant相比,我比Docker更好,但据我所知这不是Docker问题。)
我正在使用Vagrant代码在Vagrant(libvirt)VM上运行正式的Tensorflow Docker映像:
authToken = SecureRandom.hex
host.vm.provision :docker do |docker|
docker.run "tensorflow/tensorflow",
image: "tensorflow/tensorflow:latest-gpu-py3-jupyter",
args: "-it -u 1000:1000 -p 8080:8888 -v /tf:/tf",
cmd: "/bin/bash -c \"source /etc/bash.bashrc && jupyter notebook --no-browser --ip=0.0.0.0 --allow-root --NotebookApp.token='#{authToken}'\""
end
到目前为止,一切都很好。我可以使用Jupyter服务器进行身份验证。但是它看不到我的/tf
目录中的文件。特别是,尝试浏览/tf
文件夹以打开我知道在其中的文件是行不通的。此外,运行docker exec
之类的ls /tf
命令表明该目录在容器中为空。
另一方面,如果我SSH到虚拟机中并以无业游民的身份运行(“相同”命令):
docker run -it -u 1000:1000 -p 8080:8888 -v /tf:/tf tensorflow/tensorflow:latest-gpu-py3-jupyter "/bin/bash" "-c" "source /etc/bash.bashrc && jupyter notebook --no-browser --ip=0.0.0.0 --allow-root"
(以vagrant
或root
的形式出现)Jupyter在我的/tf
目录中找到了文件。
这告诉我,Vagrant如何运行Docker与我如何运行Docker之间存在一些不同。但是我不知道该怎么去解决它!
没有什么帮助?