2017-11-01 10 views
0

私はアプリケーション、サーバー、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 execは一部のサービスでしか動作しないのはなぜですか?

+0

docker-composeはコンテキスト(現在のディレクトリとdocker-compose.yml)に依存するためです。利用可能なコンテナを確認するには、 'docker-compose ps'を実行します。 – karser

答えて

0

サービス名とイメージ名が異なる場合があります。私は

docker-compose exec mysql sh 

ので、サービス名の問題ではなく、そのサービスが実際に実行されているものを使用する必要がありますRedisのに取得し、その後docker-compose.yml

version: "3" 
mysql: 
    image: redis 

、以下持つことができます。そのイメージ名は、redisやmysqlなどの名前でもかまいません。

関連する問題