gpt4 book ai didi

docker - 如何自动删除链接的 Docker 容器?

转载 作者:行者123 更新时间:2023-12-02 01:24:40 30 4
gpt4 key购买 nike

我有一个带有 PHP 的容器和一个带有 MySQL 数据库的链接容器,因为我需要能够使用数据库运行 PHPUnit(集成测试)。

基本命令如下所示:

docker run -i --rm --link db binarydata/phpunit php script.php

我已经创建了 db 容器并在运行此命令之前启动了它。

binarydata/phpunit 容器在命令运行后被删除。但是 db 容器保持正常运行。

问题是:如何在链接容器上实现 --rm 功能,以便在执行命令后它也会被删除?

最佳答案

how can I achieve --rm functionality on a linked container, so it will be removed too after command was executed?

首先,您不必再对 docker 1.10+ 使用 --linkdocker-compose will create for you a network所有容器在其中相互看到。
docker-compose alias ,您可以将您的 binary/phpunit 声明为“db”以供其他容器使用。

其次,有了该网络,如果您停止/删除 php 容器,它将从所述网络中删除,包括其别名“db”。

这与旧链接 ( docker 1.8 and before ) 不同,旧链接 modify the /etc/hosts需要它的容器。在这种情况下,删除链接容器实际上不会更改 /etc/hosts
随着new embedded docker-daemon DNS ,不再需要那个了。

Matt在评论中建议以下命令和注意事项:

docker-compose up --abort-on-container-exit --force-recreate otherwise the command never returns and the db container would never be removed.
up messes with stdout a bit though.
The exit status for the tests will be lost too, it's printed to screen instead.

关于docker - 如何自动删除链接的 Docker 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37804567/

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