通过docker容器从控制台应用程序连接到redis

我正尝试从.net core 2.0应用程序连接Redis。 都在docker集装箱。

我检查了是否可以连接到互联网从控制台应用程序这样,似乎很好;

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); } 

我可以使用localhost:6379和密码通过Redis桌面pipe理器连接到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; } } 

对于在同一台主机上运行的容器能够进行通信,需要将它们分组在一个dockernetworking中。 你需要做的是创build一个dockernetworking,并将这些容器连接到networking。

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

欲了解更多信息检查networking