我有一个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
来访问它。有什么区别?为什么我可以访问我的一些正在运行的服务,而不是使用该命令的其他服务?
答案 0 :(得分:2)
服务名称和图像名称可能不同。我可以有docker-compose.yml
version: "3"
mysql:
image: redis
然后进入redis,我需要使用
docker-compose exec mysql sh
因此服务名称很重要,而不是该服务实际运行的内容。图像名称可以是redis或mysql或其他任何内容。