这个问题来自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 仅数据容器,包括了Docker 仅数据容器的使用技巧和注意事项,需要的朋友参考一下 示例 仅数据容器已过时,现在被视为反模式! 在过去的日子里,在使用Docker的volume子命令之前以及在可以创建命名卷之前,当在任何容器中都不再有对它们的引用时,Docker删除了这些卷。仅数据容器已过时,因为Docker现在可以通过各种docker volume子命令创建命名卷以及
问题内容: 我是Docker的新手。我已经阅读了docker remote API中的教程。在创建容器方面。它显示了太多无法填充的参数。我想知道什么等效于此命令: docker run -d -p 5000:5000 –restart =始终–name注册表注册表:2。 我对此一无所知。谁能告诉我?谢谢! 问题答案: 原始答案(2015年7月): 如本教程所述(如果启用了远程API的话)(不直接测
问题内容: 具有运行后自动删除容器的标志。我想知道是否有与docker- compose.yml对应的特定服务配置,因为我在yml中获得的其中一项服务是一个脱离构建的过程,该过程应该只输出编译文件并自行消失。 问题答案: 我没有找到任何选项来帮助您在文件中定义此行为,我认为解释如下: 构建,(重新)创建,启动并附加到服务的容器。 由于您的服务器已构建并且服务已经启动,因此您可以使用和启动/停止服务
我想在启动Postgres Docker映像后创建一个数据库。