我試圖通過我的docker容器連接到主機redis數據庫。從Docker容器訪問主機redis數據庫
在我的dockerfile中,我有redis作爲需求,它被安裝[pip install redis],並且使用該docker文件構建映像。 後比我使用下面的命令實例化conatiner
sudo docker run -p 6543:6543 your_image_name
我app.py是繼
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response
import redis
def hello(request):
ds_id = '4000'
r_server = redis.Redis(unix_socket_path='/tmp/redis.sock')
result = r_server.set('foo','11')
return Response(result)
問題是,當安裝在開始redis.sock文件的Redis不會產生,從而創造錯誤當我嘗試連接時。
Dockerfile:
FROM centos:latest
MAINTAINER Ramana Rao <[email protected]>
# load base packages w/ yum
RUN yum install -y git gcc libffi-devel openssl-devel python-devel postgresql-devel libxml2-devel libxslt-devel
COPY ./requirements.txt .
RUN curl https://bootstrap.pypa.io/get-pip.py >get-pip.py && \
python get-pip.py && \
rm get-pip.py &&\
pip install -r requirements.txt
EXPOSE 6543
WORKDIR /app
COPY app /app
ENTRYPOINT [ "python" ]
CMD [ "app.py" ]
要求
pyramid
cornice
pyramid_chameleon
pyramid_beaker
pyramid_redis_sessions
pyRFC3339
oauthlib==0.7.2
oauth2client==1.5.2
pycrypto
PyOpenSSL
pymongo
SQLAlchemy
psycopg2
lxml
gspread
jira
waitress
paste
PasteDeploy
redis
是否有任何其他方式連接到主機redis的數據。
向我們顯示您的Dockerfile。看來redis服務器還沒有運行。 –
我在問題中添加了我的docker文件 – Ishita
在運行python應用程序之前,您尚未安裝redis服務器並啓動它。請參閱:http://stackoverflow.com/q/31660691/1005215 –