gpt4 book ai didi

docker - 如何仅使用 docker-compose.yml 创建数据容器?

转载 作者:IT老高 更新时间:2023-10-28 12:36:45 26 4
gpt4 key购买 nike

这个问题来自 Docker 存储库中的一个问题:
https://github.com/docker/compose/issues/942

我不知道如何使用 docker compose 创建数据容器(无进程运行)。

最佳答案

更新:过去几年情况发生了变化。请参阅@Frederik Wendt 的回答,以获得良好且最新的解决方案。

我的旧答案:具体如何操作在一定程度上取决于您为纯数据容器使用的图像。如果您的图像有 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 compose here 的所有者所说的那样.

现在,只要您不执行 docker-compose rm -v,您的仅数据容器 (..._DatabaseData_1) 就不会丢失其数据.因此,您可以随心所欲地执行 docker-compose stopdocker-compose up

如果您喜欢使用像 tianon/true 这样的专用纯数据图像,这也是一样的。这里不需要覆盖entrypoint,因为它不存在。该图像和 docker compose 似乎存在一些问题。我没试过,但是this article如果您遇到任何问题,可能值得一读。

一般来说,为您的纯数据容器使用与访问它的容器相同的图像似乎是个好主意。见 Data-only container madness了解更多详情。

关于docker - 如何仅使用 docker-compose.yml 创建数据容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32908621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com