Estoy mirando la documentación aquí y veo la siguiente línea:
$ docker run -it --network some-network --rm redis redis-cli -h some-redis
¿Qué debe ir en el --network some-network
? Mi comando de ejecución de docker en el campo antes hizo el mapeo de puertos predeterminado de docker run -d -p 6379:6379
, etc.
Estoy iniciando mi servidor redis con la configuración de red docker predeterminada y veo que esto está en uso:
$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES abcfa8a32de9 redis "docker-entrypoint.s…" 19 minutes ago Up 19 minutes 0.0.0.0:6379->6379/tcp some-redis
Sin embargo, el uso de la red de puente predeterminada produce:
$ docker run -it --network bridge --rm redis redis-cli -h some-redis Could not connect to Redis at some-redis:6379: Name or service not known
Ignore el comando --network bridge
y use:
docker exec -it some-redis redis-cli
Docker incluye soporte para contenedores de red mediante el uso de controladores de red. De forma predeterminada, Docker proporciona dos controladores de red para usted, el puente y los controladores superpuestos. También puede escribir un complemento de controlador de red para que pueda crear sus propios controladores, pero esa es una tarea avanzada.
Leer más aquí. https://docs.docker.com/engine/tutorials/networkingcontainers/
tienes que correr
docker network create some-network
No importa el nombre some-network
, siempre y cuando el servidor Redis, su contenedor CLI especial y cualquier cliente que hable con el servidor usen el mismo nombre. (Si está utilizando Docker Compose, esto sucede automáticamente y la red se llamará algo así como directoryname_default
; use docker network ls
para encontrarlo).
Si su servidor Redis ya se está ejecutando, puede usar la conexión de red docker para adjuntar el contenedor existente a la nueva red. Esta es una de las pocas configuraciones que puede cambiar después de haber creado un contenedor.
Si solo está intentando ejecutar un cliente para hablar con este Redis, no necesita Docker para esto en absoluto. Puede instalar las herramientas de cliente de Redis localmente y ejecutar redis-cli
, señalando la dirección IP de su host y el primer puerto en la opción docker run -p
. El protocolo de cable Redis es lo suficientemente simple como para que también pueda usar herramientas primitivas como nc
o telnet
.