我正在尝试从.net core 2.0 app连接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;
}
}
答案 0 :(得分:2)
对于在同一主机上运行且能够进行通信的容器,需要将它们分组到docker网络下。您需要做的是创建一个docker网络,并将这些容器连接到网络。
docker network create --driver bridge my-network
docker run --network=my-network image1 ...
docker run --network=my-network image2 ...
有关详细信息,请查看networking