为什么docker-compose exec只能在一些服务上工作?
我有一个docker-compose文件,指定多个服务,如应用程序,服务器,Redis和数据库。 当我想要访问它们时,我会执行docker-compose exec application bash
或者docker-compose exec server bash
。 但是当我做一个docker-compose exec redis sh
我得到错误ERROR: No such service: redis
。 但是,我可以通过执行docker exec -it smb-redis sh
来访问它。 有什么不同? 为什么我可以访问一些正在运行的服务,而不是使用该命令的其他服务?
服务名称和图像名称可能不同。 我可以有一个下面docker-compose.yml
version: "3" mysql: image: redis
然后进入redis我需要使用
docker-compose exec mysql sh
所以服务名称很重要,而不是实际运行的服务。 图像名称可能是redis或mysql或其他任何事情。