如何仅使用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

回到顶部