如何autoremove链接的Docker容器?

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

基本的命令是这样的:

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

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

运行命令后, binarydata/phpunit容器被删除。 但db容器保持运行。

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

我怎样才能实现链接容器上的RMfunction,所以执行命令后,它也会被删除?

首先,你不必再使用--link 1.10+链接。 docker-compose将为您创build一个networking ,其中所有容器都可以互相看到。
用docker-compose alias ,你可以声明你的binary/phpunit为“ db ”,供其他容器使用。

其次,使用该networking,如果您停止/移除php容器,则将从该networking中移除它,包括其别名“ db ”。

这不同于旧的链接( docker 1.8和之前 ),它会修改需要它的容器的/etc/hosts 。 在这种情况下,删除链接的容器实际上不会改变/etc/hosts
有了新的embedded式docker-daemon DNS ,就不再需要这个了。

马特在评论中提出以下命令和注意事项:

docker-compose up --abort-on-container-exit --force-recreate否则命令永远不会返回, db容器永远不会被删除。
尽pipe有点stdout混乱。
testing的退出状态也会丢失,而是被打印到屏幕上。