我想在docker中设置redis配置。
我在D:/redis/redis.conf下有我自己的redis.conf,并将其配置为绑定127.0.0.1并且取消注释了requirepass foobared
然后使用此命令在docker中加载此配置:
docker run --volume D:/redis/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf
接着, 我在src / resources下的maven Project中的应用程序中有docker-compose.yml。
我在我的docker-compase.yml
中接下来了redis:
image: redis
ports:
- "6379:6379"
我执行命令:
docker-compose up
服务器运行,但是当我使用命令检查时:
docker ps -a
它显示redis Image运行在0.0.0.0:6379。
我希望它在127.0.0.1运行。
我怎么做到的? 不是我的配置文件加载或是错误的?或者我的命令错了?
任何建议都有很大的帮助。
PS:我正在使用Windows。
由于
答案 0 :(得分:1)
尝试执行:
docker inspect <container_id>
并使用&#34; NetworkSettings&#34; - &gt;&#34; Gateway&#34; (必须是172.17.0.1)值而不是127.0.0.1。
由于您的Redis在隔离环境中运行,因此无法使用127.0.0.1。
或者您可以链接您的容器。
答案 1 :(得分:1)
首先,你不应该担心redis会说0.0.0.0:6379
。因为redis在容器内运行。如果它没有听0.0.0.0
,那么你就无法建立任何联系。
接下来,如果您希望redis只在localhost上侦听localhost,那么您需要使用下面的
redis:
image: redis
ports:
- "127.0.0.1:6379:6379"
PS:我没有为具有127.0.0.1
端口映射的窗口运行容器或docker,因此您必须查看它是否有效。因为Windows,Mac和Linux中的主机网络不同,可能无法以这种方式工作