gpt4 book ai didi

docker - 如何重用 Docker 容器作为服务?

转载 作者:行者123 更新时间:2023-12-01 04:56:46 25 4
gpt4 key购买 nike

我已经有一个运行中的 postgres 和 redis 容器用于各种用途。但是,我几个月前从命令行启动了这些。现在,我正在尝试安装一个新的应用程序,而此方法涉及编写一个包含 postgres 和 redis 作为服务的 docker compose 文件。

是否可以修改组合文件以指定已经运行的容器? Postgres 已经在孤立任何数据方面做得很好,我无法想象重用正在运行的 redis 会是个问题。

我应该重用它们吗?我突然想到我可以为两者运行多个容器,而且我不确定这样做会有什么缺点(除了困惑的 docker ps 输出)。

当我将 container_name 设置为现有容器的名称时,我得到了我认为是一个相当典型的错误:

cb7cb3e78dc50b527f71b71b7842e1a1c". You have to remove (or rename) that container to be able to reuse that name.

紧随其后的是一些提示端口已被使用的端口(5432、6579 等)。

Stackoverflow 上的其他答案表明,如果我最初是从另一个具有完全相同细节的撰写文件调用这些服务,我也可以在这里这样做,并且它会重用它们。但是我用来启动它们的命令不知何故从未写入我的 bash_history,所以我什至不确定细节(除了名称、端口和总是重新启动)。

最佳答案

您是否在寻找 docker-compose 的 external_links 关键字?

external_links 允许您重用已经运行的容器。

根据 docker-compose specification :

This keyword links to containers started outside this docker-compose.yml or even outside of Compose, especially for containers that provide shared or common services. external_links follow semantics similar to the legacy option links when specifying both the container name and the link alias (CONTAINER:ALIAS).

语法如下:

external_links:
- redis_1
- project_db_1:mysql
- project_db_1:postgresql

关于docker - 如何重用 Docker 容器作为服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49781034/

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