Wykonanie komendy wewnątrz kontenera

0

Witam
mam redisa w dokerze

docker run -p 6379:6379 --name redis -d redis

chciałbym dodać wpis do redisa będąc na zewnątrz kontenera, da się? Podpowiecie coś? Kombinuję tak:

#!/bin/bash
asdf=$(redis-cli set mykey myvalue)
docker exec -it lt_redis bash $asdf
0

Też mam redisa w dokerze i porozumiewam się z nim dowolnie, (mając host i port) ręcznie prez resp.app albo ze skryptów (python redis)

4

Skoro przekazujesz z kontenera port 6379 na zewnątrz to możesz z localhosta podłączyć się przez redis_cli tak jakby usługa była lokalnie i robić wszystko co chcesz. Musisz tylko na lokalu zainstalować redis_cli

1

No to tego właśnie służy docker exec, a wszystko jest opisane tu:
https://www.digitalocean.com/community/tutorials/how-to-use-docker-exec-to-run-commands-in-a-docker-container

Z czym masz konkretnie problem? Możesz wykonać każdą komendę tak samo, jakbyś wykonywał ją normalnie na swoim systemie.

0
gajusz800 napisał(a):

No to tego właśnie służy docker exec, a wszystko jest opisane tu:
https://www.digitalocean.com/community/tutorials/how-to-use-docker-exec-to-run-commands-in-a-docker-container

Z czym masz konkretnie problem? Możesz wykonać każdą komendę tak samo, jakbyś wykonywał ją normalnie na swoim systemie.

Przy tym co mam teraz:

#!/bin/bash
docker run -p 6379:6379 --name redis -d redis

asdf=$(redis-cli set mykey myvalue)
docker exec -it redis bash $asdf

otrzymuje to:

Could not connect to Redis at 127.0.0.1:6379: Connection refused

próbowałem z przłącznikiem --net=host uruchomić kontener i wtedy w sumie wpis się dodaje ale otrzymuje:

docker: Error response from daemon: conflicting options: host type networking can't be used with links. This would result in undefined behavior.

po prostu w skrypcie bashowym chce odpalić za pomocą dockera redisa i dodać wpis do niego (redisa) i potem skrypt ma się wykonywać dalej...

0

Jesteś pewny, że Redis nasłuchuje na 127.0.0.1 wewnątrz kontenera? Może powinieneś wykonać taką komendę raczej poza kontenerem a nie wewnątrz

0
gajusz800 napisał(a):

Jesteś pewny, że Redis nasłuchuje na 127.0.0.1 wewnątrz kontenera? Może powinieneś wykonać taką komendę raczej poza kontenerem a nie wewnątrz

nie wiem na jakim adresie nasłuchuje, ten 127.0.0.1 dostaje w odpowiedzi

0
gajusz800 napisał(a):

Jesteś pewny, że Redis nasłuchuje na 127.0.0.1 wewnątrz kontenera? Może powinieneś wykonać taką komendę raczej poza kontenerem a nie wewnątrz

może inaczej: jak wydobyć ip redisa z uruchomionego kontenera?

0
biurostron napisał(a):
gajusz800 napisał(a):

Jesteś pewny, że Redis nasłuchuje na 127.0.0.1 wewnątrz kontenera? Może powinieneś wykonać taką komendę raczej poza kontenerem a nie wewnątrz

może inaczej: jak wydobyć ip redisa z uruchomionego kontenera?

Odpisałem Ci wcześniej w komentarzu co należy zrobić, że wydobyć wszystkie dane nt. kontenera. Nie dostajesz powiadomień o komentarzach?

1

Jak się upierasz wejdź do kontenera przez docker exec -it REDIS bash i wykonaj po prostu polecenie redis_cli . Domyślnie powinien się połączyć do localhosta.
To będziesz wiedział co potem robić.

0
ccwrc napisał(a):
biurostron napisał(a):
gajusz800 napisał(a):

Jesteś pewny, że Redis nasłuchuje na 127.0.0.1 wewnątrz kontenera? Może powinieneś wykonać taką komendę raczej poza kontenerem a nie wewnątrz

może inaczej: jak wydobyć ip redisa z uruchomionego kontenera?

Odpisałem Ci wcześniej w komentarzu co należy zrobić, że wydobyć wszystkie dane nt. kontenera. Nie dostajesz powiadomień o komentarzach?

nie zauważyłem, sorki, zrobiłem jak radziłeś - juz po temacie, dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1