到目前为止,当我运行 docker 镜像时,我通常会这样做:
docker run -d -it --name test \
-v $(pwd)/target:/app/
theimage
但是我现在正在检查另一个人的 docker 代码,我发现了类似的东西
docker run -d -it --name test \
--mount type=bind,source=$(pwd)/target.target=/app \
theimage
我读到两者的基本功能相似。 我想听听经验丰富的 Docker 用户的意见,了解其中可能存在的差异以及为什么我应该更喜欢其中一种。
它们是相同的,除了
--mount
选项仅出现在较新版本的 Docker 中并且具有更详细的语法。 原则上 --mount
支持更多选项,因此您可以为自动创建的命名卷指定标签等设置,但我从来没有特别需要这些。
我通常使用
-v
选项(或 Compose volumes:
的 缩写形式)。 它更方便一点,我不需要额外的选项。 对于像您所示的简单绑定安装来说,这是双重正确的。
绑定安装有利于本地开发,而且您可能会忘记,因为您可以使用
docker volume ls
列出卷,但是对于绑定安装,您无法跟踪,但我只是喜欢使用卷,因为它们更容易保留轨迹