2017-10-11 105 views
0

我試圖從.net core 2.0應用程序連接redis。都在碼頭集裝箱。通過docker containers從控制檯應用程序連接到redis

我檢查,如果可以連接到互聯網從控制檯應用程序這樣,它似乎很好;

public static void Main(string[] args) 
{ 
    string message = DownloadFile("http://foo.com"); 

    WriteLine(message); 
    Console.ReadKey(); 
} 

public static string DownloadFile(string remoteFilename) 
{ 
    WebClient client = new WebClient(); 
    return client.DownloadString(remoteFilename); 
} 

我可以通過Redis桌面管理器通過localhost:6379和密碼連接到redis容器。

但我不能這樣連接;

public static void Main(string[] args) 
{ 
    db.StringIncrement("visit"); 
    Console.WriteLine("Hello. This is your " + db.StringGet("visit") + "th visit"); 

    Console.ReadKey(); 
} 

public static String redisConString = "localhost:6379,password=s7MAdAOqvvINvJZY"; 

//singleton redis connection instance 
public static ConnectionMultiplexer _redisConnection; 
public static ConnectionMultiplexer redisConnection 
{ 
    get 
    { 
     if (_redisConnection == null) 
     { 
      _redisConnection = ConnectionMultiplexer.Connect(redisConString); 
     } 
     return _redisConnection; 
    } 
} 

public static IDatabase _db; 
public static IDatabase db 
{ 
    get 
    { 
     if (_db == null) 
     { 
      _db = redisConnection.GetDatabase(); 
     } 
     return _db; 
    } 
} 

回答

2

對於在同一主機上運行的容器能夠進行通信,它們需要在碼頭網絡下進行分組。你需要做的是創建一個碼頭網絡,並將這些容器連接到網絡。

docker network create --driver bridge my-network 
docker run --network=my-network image1 ... 
docker run --network=my-network image2 ... 

有關更多信息,請networking

+2

要麼,或使用撰寫文件 –

+0

我正在「從後臺程序錯誤響應:插件未找到」,其上運行consoleapp的dotnet泊塢窗。 – Mert

相關問題