从Windows主机访问dockerized redis

对于Windows上的节点后端开发,我试图在docker容器中设置redis,因为redis windows版本似乎对我来说是越野车。 对于docker工人来说,我是一个新手,我不知道所有与之相关的原则。

我到目前为止所做的:

  1. 安装docker
  2. 运行“docker pull redis”
  3. 运行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>然后你暴露某个端口。