从Windows主机访问dockerized redis
对于Windows上的节点后端开发,我试图在docker容器中设置redis,因为redis windows版本似乎对我来说是越野车。 对于docker工人来说,我是一个新手,我不知道所有与之相关的原则。
我到目前为止所做的:
- 安装docker
- 运行“docker pull redis”
- 运行docker run –name some-redis -d redis redis-server –appendonly yes'来启动redis容器
问题:
我尝试连接到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
为了从我的本地机器连接到我的容器里面的redis,我错过了什么? (我的节点应用程序没有被docker化)
你错过了揭露港口。 用命令运行redis容器
docker run --name some-redis -p6379:6379 -d redis redis-server --appendonly yes
如果Dockerfile
包含EXPOSE <some_port>
则意味着另一个容器到相同的dockernetworking可以连接到这个端口。 而已。
如果你想连接到主机的容器,你需要说泊坞窗。
- 您可以将
-P
选项添加到docker run
命令。 在这种情况下,docker会将所有已定义的端口暴露给本地机器上的随机端口。 - 或者你可以添加选项
-p<port_on_host_machine>:<port_inside_docker_container>
然后你暴露某个端口。