我正在阅读Docker documentation中的一些内容,我注意到他们在创建容器时会传递true
命令。
$ sudo docker create -v /dbdata --name dbdata training/postgres /bin/true
为什么他们将/bin/true
传递给容器?如果我理解正确,我的仅数据容器永远不会运行,那么甚至是必要的吗?
答案 0 :(得分:5)
没有必要运行命令,但是现在Docker确实要求你指定要运行的命令(或至少是一个入口点)。我想这是出于模式完整性的原因。以下命令将成功创建一个docker容器:
docker create -v /dbdata --name dbdata --entrypoint=_ scratch
该容器可以用作卷容器,但它永远不能运行。
也就是说,许多Docker实用程序(例如Compose)expect a command都存在,因为它们将在内部使用run
,而不仅仅是create
。
如果您想为DVC目的制作非常小的容器,请使用非常小的静态二进制文件,例如tianon/true。