docker run -p 8500:8500 \
--mount type=bind,source=$(pwd)/models/mnist,target=/models/mnist \
-e MODEL_NAME=mnist \
-t tensorflow/serving &
参数--mount
,type
,source
,target
和符号&
在docker中是什么意思或起作用?
我有运行命令docker --help
和docker run --help
,但仍然与上面的这些命令混淆。
答案 0 :(得分:0)
我建议您阅读the docs related to bind mounts来理解带有--mount
参数的type=bind
选项。
在您的示例中,mount
选项仅在主机($(pwd)/models/mnist
)和容器(路径/models/mnist
)之间共享本地目录。这意味着$(pwd)/models/mnist
中位于主机上的所有文件都可以从/models/mnist
中的容器中获得。
&
与Docker无关,只是launches your command in background。您可以使用docker的-d
(守护程序)选项来获得相同的行为。
答案 1 :(得分:0)
对于Docker,安装在容器中的最常见的存储类型为以下三种(取自here):
卷存储在主机文件系统的一部分中,该文件系统由Docker管理(在Linux上为/var/lib/docker/volumes/
)。非Docker进程不应修改文件系统的这一部分。卷是在Docker中持久存储数据的最佳方法。
绑定架可以存储在主机系统上的任何位置。它们甚至可能是重要的系统文件或目录。 Docker主机或Docker容器上的非Docker进程可以随时对其进行修改。
tmpfs挂载仅存储在主机系统的内存中,并且永远不会写入主机系统的文件系统中。
因此,通过--mount
,您可以以非常方便的方式为这些存储类型设置相关选项:
type
字段可以是上述3种类型之一。
source
是主机文件系统中的挂载点位置
(对于命名卷,这是卷的名称,对于匿名卷,此字段将被省略)。
target
是容器内部的安装点位置 。
请注意,您将在-v
中看到使用--volume
或docker run
标志的许多示例。在Docker 17.06
之前,这是官方的方式。
(恕我直言,请使用--mount
选项,它可以节省一些调试时间,例如,如果您尝试挂载一个不存在的目录,它将抛出一个错误,而不是--volume
,它将创建它。
&
符号与Docker无关,它只是用于在后台将您的命令作为守护程序运行。