对于 windows 上的节点后端开发,我试图在 docker 容器中设置 redis,因为 redis windows 版本对我来说似乎有问题。我对 docker 很陌生,我不知道随之而来的所有原则。
到目前为止我做了什么:
问题:
我尝试连接到 127.0.0.1:6379(当我在我的系统上本地安装 redis 时它曾经工作过),但它超时了。我以为redis容器有它自己的ip地址,我认为它的ip地址是172.17.0.2。连接到这个 ip 也不起作用。
PS C:\WINDOWS\system32> docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' some-redis
172.17.0.2
PS C:\WINDOWS\system32> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d3b796e9df5c redis "docker-entrypoint..." About an hour ago Up 8 minutes 6379/tcp some-redis
Run Code Online (Sandbox Code Playgroud)
为了从本地机器连接到容器内的 redis,我缺少什么?(我的节点应用程序没有 dockerized)
你错过了暴露端口。使用命令运行 redis 容器
docker run --name some-redis -p6379:6379 -d redis redis-server --appendonly yes
如果Dockerfile包含EXPOSE <some_port>则意味着进入同一个 docker 网络的另一个容器可以连接到这个端口。而已。
如果你想从主机连接到容器,你需要说 docker 。
-P向docker run命令添加选项。在这种情况下,docker 将所有定义的端口暴露给本地机器上的随机端口。-p<port_on_host_machine>:<port_inside_docker_container>然后公开某些端口。| 归档时间: |
|
| 查看次数: |
1920 次 |
| 最近记录: |