docker - 动态获取 docker-compose 创建的正在运行的容器名称

标签 docker docker-compose circleci

当我运行 docker-compose 时,它​​会创建一个 web 容器和 postgres 容器。

我想通过类似的方式手动触发我的 Django 测试运行

docker-compose run web python manage.py test

这样做的问题是它创建了一个新容器(需要应用新的迁移、管理工作等)

我倾向于这样做的选项

docker exec -i -t <containerid> python manage.py test

这引入了一个新问题,即我必须先运行 docker ps 才能获取容器名称。这样做的重点是为每个构建自动运行测试,因此必须自动化,手动运行 docker ps 不是解决方案。

那么有没有办法动态获取容器 id 或者有更好的方法来做到这一点?如果您可以在 docker-compose 中分配容器名称,这将不是问题

最佳答案

虽然提供了可接受的答案,但答案本身与此问题的标题并没有真正的关系:

Dynamically get a running container name created by docker-compose

要动态检索 docker-compose 运行的容器的名称,您可以执行以下命令:

$(docker inspect -f '{{.Name}}' $(docker-compose ps -q web) | cut -c2-)

关于docker - 动态获取 docker-compose 创建的正在运行的容器名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41623477/

相关文章:

docker - 从用户 github 源设置容器

docker - 自动将容器映射到 docker 主机的/etc/hosts,每个容器使用相同的端口

android - 如何在 CircleCI 2.0 上正确运行 Android UI 测试?

cpu - 如何减少 Circle CI 或 Travis CI 上的 Elm 编译时间?

mysql - Wildfly 和 mysql 数据库之间的编排

docker - InfluxDB 只有在 auth 关闭时才能创建第一个用户

https - 哈希公司金库 : "Error initializing listener of type tcp: error loading TLS cert " Where is my mistake?

continuous-integration - 使用 Circle.CI 和 FastLane 时导入 .ProvisionProfile

shell - 如何检查容器内存不足的容器

docker - Openshift 零停机部署 react + rest api