如何仅使用docker-compose.yml创建数据容器?
这个问题来自Docker存储库中的一个问题:https :
//github.com/docker/compose/issues/942
我无法弄清楚如何使用docker compose创建数据容器(无进程运行)。
回答:
确切的操作方法在一定程度上取决于您将数据仅用于容器的图像。如果您的图片带有entrypoint
,则需要在中将其覆盖docker-
compose.yml。例如,这是来自docker hub的官方MySql映像的解决方案:
DatabaseData: image: mysql:5.6.25
entrypoint: /bin/bash
DatabaseServer:
image: mysql:5.6.25
volumes_from:
- DatabaseData
environment:
MYSQL_ROOT_PASSWORD: blabla
当您执行docker-compose
up此操作时,您会得到一个类似的容器..._DatabaseData_1
,其中显示了Exited
呼叫时的状态docker ps
-a。的进一步调查docker inspect
将显示,其时间戳为0
。这意味着该容器从未运行过。就像docker
owner在此处声明的那样。
现在,只要您不执行docker-compose rm
-v,您的仅数据容器(..._DatabaseData_1
)就不会丢失其数据。所以,你可以做docker-compose
stop,并docker-compose up
经常随你喜欢。
如果您喜欢使用专用的仅数据图像,则tianon/true
此方法也一样。在这里,您不需要覆盖entrypoint
,因为它不存在。该映像和docker
compose似乎存在一些问题。我没有尝试过,但是如果您遇到任何问题,这篇文章值得一读。
通常,对仅数据容器使用与访问它的容器相同的图像似乎是一个好主意。有关更多详细信息,请参见仅数据容器疯狂。
以上是 如何仅使用docker-compose.yml创建数据容器? 的全部内容, 来源链接: utcz.com/qa/427252.html