为什么docker-compose exec仅适用于某些服务?

时间:2017-11-01 08:59:23

标签: bash docker docker-compose sh

我有一个docker-compose文件,指定多个服务,例如应用程序,服务器,redis和数据库。当我想访问它们时,我会docker-compose exec application bashdocker-compose exec server bash。但当我执行docker-compose exec redis sh时,我收到错误ERROR: No such service: redis。但是我可以通过docker exec -it smb-redis sh来访问它。有什么区别?为什么我可以访问我的一些正在运行的服务,而不是使用该命令的其他服务?

1 个答案:

答案 0 :(得分:2)

服务名称和图像名称可能不同。我可以有docker-compose.yml

以下
version: "3"
mysql:
  image: redis

然后进入redis,我需要使用

docker-compose exec mysql sh

因此服务名称很重要,而不是该服务实际运行的内容。图像名称可以是redis或mysql或其他任何内容。