首页 文章

从Docker中运行的Android模拟器连接到Redis

提问于
浏览
0

我有一台在主机上运行的Redis服务器(端口6379,没有公共IP) . 此主机上还有一个docker容器,在这个docker容器中有一个Android模拟器 . 如何从在Android模拟器中运行的应用程序连接到主机上的Redis服务器 . 我假设应该有一种方法来创建一个正确的端口转发 .

主机可以是运行Ubuntu的AWS EC2实例,也可以是MAC .

# Inside docker container
# ip route
default via 172.17.0.1 dev eth0 
10.0.0.0/24 via 172.17.0.1 dev eth0 
172.17.0.0/16 dev eth0  proto kernel  scope link  src 172.17.0.4 

# Inside android emulator
# ip route
default via 10.0.2.2 dev eth0 
10.0.2.0/24 dev eth0  proto kernel  scope link  src 10.0.2.15 
10.0.2.2 dev eth0  scope link 
172.217.7.238 via 10.0.2.2 dev eth0

所以我可以使用docker.for.mac.host.internal(或更新版本的host.docker.internal)从Docker容器连接到它的主机,我可以使用10.0.2.2从Android模拟器连接到它的主机 . 所以问题是如何直接从Android模拟器连接到Redis?

1 回答

  • 0

    要将主机Redis连接到在容器内运行的仿真器:

    • 在仿真器设置中使用Docker默认网桥IP

    • 在运行模拟器容器时使用 --network=host 传递Docker容器网络 . 这样容器将连接到主机网络,仿真器可以通过 localhost 连接到Redis . (这种方法有点不安全)

相关问题