如何在Docker容器和主机之间共享数据

时间:2020-04-24 07:03:22

标签: css docker docker-compose

我正在阅读使用docker的文档文档。要对其进行自定义,我想在容器和主机之间共享css文件夹,以避免始终生成新图像以查看更改。目的是,我可以刷新浏览器并查看更改。

我尝试了类似的方法,但是它不起作用:

docker run -v ~/docs/source/_static/css:/docs/source/_static/css -p 80:80 -it my-docu:latest

此命令有什么问题?

我要共享的文件夹的路径为:

Documents/my-documentation/docs/source/_static/css

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

我猜测〜无法正确解析。代字号(“〜”)指用户的主目录。通常类似于/home/your_username

对于您而言,听起来您的文档仍然不在此目录中。

尝试:

docker run -v Documents/my-documentation/docs/source/_static/css:/docs/source/_static/css -p 80:80 -it my-docu:latest

答案 1 :(得分:0)

我没有要测试的mac,但是我怀疑命令应该如下所示(Documents是您的主目录内用~表示的子文件夹)

docker run -v ~/Documents/my-documentation/docs/source/_static/css:/docs/source/_static/css -p 80:80 -it my-docu:latest

在OP中装入主机文件夹~/docs/source/_static/css,如果文件位于Documents/my-documentation/docs/source/_static/css中则没有意义,因为它对应于~/Documents/my-documentation/docs/source/_static/css

请记住,Docker仍在Mac上的VM内运行,因此您需要提供在该VM上有效的主机路径

您可以执行以下操作以更好地了解这种情况:启动一个交互式容器,在该容器中将主机vm root的根文件系统装入/mnt/vm-root中。这样,您可以查看使用-v标志传递给docker run命令的路径时可以安装的路径以及路径格式

docker run --rm -it -w /mnt/vm-root -v /:/mnt/vm-root ubuntu:latest bash