L'appel de redis-cli dans docker-composer le programme d'installation
Je lance l'officiel Redis image https://hub.docker.com/_/redis/ dans un docker-compose
de l'installation.
myredis:
image: redis
Comment pouvez exécuter redis-cli
avec docker-composer sur cette image?
J'ai essayé le suivant, mais il n'a pas à se connecter:
docker-compose run myredis redis-cli
> Could not connect to Redis at 127.0.0.1:6379: Connection refuse
Les docs de l'image dit que je devrais courir:
docker run -it --rm \
--link some-redis:redis \
redis \
sh -c 'exec redis-cli -h "$REDIS_PORT_6379_TCP_ADDR" -p "$REDIS_PORT_6379_TCP_PORT"'
Comment cela se traduit-il pour docker-compose run
?
OriginalL'auteur ivoba | 2015-10-23
Vous devez vous connecter pour publier un commentaire.
Qui remplacerait la valeur par défaut
CMD [ "redis-server" ]
: vous essayez d'exécuterredis-cli
sur un conteneur dans lequel leredis-server
n'a jamais été exécutée.Comme mentionné ici, vous pouvez également tester avec:
De docker-composer, comme mentionné dans ce menu fixe/composer question 2123:
Comme le OP ivoba confirme (dans les commentaires), la dernière forme de travaux.
Alors:
ivoba ajoute également:
Excellent! J'ai compris votre commentaire dans la réponse pour plus de visibilité.
'docker-composer exécuter redis redis-cli -h redis" fonctionne également lorsque les conteneurs sont en cours d'exécution. De cette façon, il n'est pas nécessaire de déclarer une salle de rcli conteneur.
OK. J'ai de nouveau inclus votre commentaire dans la réponse pour plus de visibilité.
docker-compose run redis redis-cli -h redis
me donne unCould not connect to Redis at redis:6379: Try again
:/ Il arrive aussi que lorsque le conteneur est en cours d'exécution. Edit: la solution avecrcli
fonctionne cependant. Je suppose que cela est lié à la mise en réseau d'une certaine manière.OriginalL'auteur VonC
Vous pouvez également utiliser cette commande:
OriginalL'auteur Hamid FzM
J'ai suivi comme @VonC suggèrent, mais dans mon cas, j'ai exécuter le redis sur le réseau prédéfini de sorte qu'il n'a pas travaillé.
Le cas dans le redis conteneur exécuter en réseau spécifique,
network
champ doit être spécifié dans le panneau-composer.fichier yamlOriginalL'auteur zeroFruit