2017-10-06 395 views
2

我想在docker中設置redis配置。在Dock中設置docker的redis配置

我有自己redis.conf下d:/redis/redis.conf並已經配置它有綁定127.0.0.1和具有未註釋requirepass foobared

然後用這個命令中搬運工加載此配置:

docker run --volume D:/redis/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf 

接下來, 我有搬運工人,compose.yml在我在src /資源Maven項目應用。

我ahve在我的搬運工,compase.yml

redis: 
image: redis 
ports: 
    - "6379:6379" 

的follwoing而且我執行命令:

docker-compose up 

服務器運行,但是當我用命令查看:

docker ps -a 

它顯示redis圖像運行在0.0.0.0:6379。

我希望它運行在127.0.0.1。

我該怎麼做? 不是我的配置文件加載或錯誤?或我的命令是錯誤的?

任何建議都很有幫助。

PS:我正在使用Windows。

感謝

回答

1

嘗試執行:

docker inspect <container_id> 

並使用 「NetworkSettings已」 - > 「網關」(必須是172.17.0.1)值而不是127.0.0.1。

由於Redis在孤立環境中運行,因此無法使用127.0.0.1。

或者你可以鏈接你的容器。

+0

感謝你回覆@Aleksandr是它顯示172.17.0.1。我更改了redis.conf中的綁定來綁定172.17.0.1。但再次當我執行命令碼頭運行 - 卷D:/redis/redis.conf:/usr/local/etc/redis/redis.conf - 名稱myredis redis redis-server/usr/local/etc/redis/redis的。conf並執行命令docker-compose up it顯示相同的 – pgman

0

所以首先你不應該擔心redis在0.0.0.0:6379上傾聽。因爲redis正在容器中運行。如果它不聽0.0.0.0,那麼你將無法建立任何連接。

接下來,如果你想的Redis只在本地主機上的本地主機聽我的話,你需要使用下面

redis: 
image: redis 
ports: 
    - "127.0.0.1:6379:6379" 

PS:我還沒有和127.0.0.1端口映射運行容器或碼頭的窗戶,所以你必須要看看它是否有效。由於在Windows,Mac和Linux的主機網絡是不同的,可能不會這樣工作

+0

謝謝你的回覆。我嘗試了你所說的,但令人驚訝的是它說127.1.0.1:6379綁定失敗:端口已被分配。不知道發生了什麼 – pgman

+0

我只是注意到,每當我更改綁定或取消註釋requirepass,然後我得到該連接被拒絕,incase我保持IP到127.0.0.1或網關,並給我的redis.yml密碼爲空那麼它的工作。所以,我認爲我的redis.conf沒有正確加載,雖然它顯示加載配置 – pgman

+0

假設您使用的是Docker for Windows,您的Docker虛擬機在Docker設置中共享了'D:'嗎? –