我有一台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
这是我的python文件'app.py‘ import redis
cache = redis.Redis(host='redis', port=6379)
for i in range(8):
cache.set(i,i)
for i in range(8):
print(cache.get(i)) 这是我的Dockerfile FROM python:3.7-alpine
COPY . /code
WORKDIR /code
COPY requirements.txt requirements.txt
RUN pip install -r
我使用以下命令运行了一个redis容器:docker run -d --name redis -p 6379:6379 redis。
我已经使用以下命令运行了Django应用程序:docker run -it -p 8000:8000 voucher。
我的连接地址是redis://redis:6379/1。
但我似乎无法与redis连接,这是我的错误:redis.exceptions.ConnectionError: Error -2 connecting to redis:6379. Name or service not known.
PS:,我不使用docker-compose
在我的MBP上,安装了最新的boot2docker,我有以下Dockerfile
FROM redis:3.0.3
CMD redis-server --bind 0.0.0.0
我运行以下命令:
docker build .
docker run --rm ba09b207db42 # where ba09b207db42 is the container id returned by the build command
然后我跑:
redis-cli -h `boot2docker ip`
我得到了一个错误:
无法连接到Redis,电话: 192.168.59.103:6379:连接被拒
我正在使用macOS 10.12上的Docker1.12.5,并使用它来设置一个开发环境,我有一个应用程序映像和一个共享的redis映像,其中包含一些预先填充的配置变量。
即使在阅读了一些教程(以及如何在Mac上无法使用docker0 )之后,我仍然很难连接这两个容器。
我使用以下方法启动我的redis映像:
docker run -d -p 6379:6379 (IMAGE ID)
在我的redis图像中,我有:
CONTAINER ID IMAGE COMMAND CREATED STATU
我试图在redis中保存python应用程序的数据,但是当我停止docker-复合文件时,数据就被删除了,当我再次运行docker-复合文件时,它从一开始就开始运行。我想保存容器的数据,无论何时开始,它都从容器退出时离开的位置开始。例如,当我退出容器时,它会显示Hello World! I have been seen b'6' times.,当我重新启动容器时,它应该从Hello World! I have been seen b'6' times.开始。
version: "3.7"
services:
nginx_app:
i
我在端口6379上运行了一个redis容器,但是django应用程序无法连接到该端口。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f62c020fec99 sp_ask_dashboard_celery_worker "sh -c 'cd sp_dashbo…" 39 minutes ago