【菜鸟问题】构建webapp images的时候 加入了 redis-server, 请问 如何在web-app中访问这个redis服务?


想要将所有依赖的服务都整合在同一个image里面,但是运行的时候无法访问到安装在同一个image中的服务
FROM ubuntu:latest
COPY ./ /usr/src/app/
WORKDIR /usr/src/app/
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
RUN apt-get update
RUN apt-get -y upgrade
RUN echo exit 101 > /usr/sbin/policy-rc.d
RUN chmod +x /usr/sbin/policy-rc.d
RUN apt-get install -y curl
RUN curl --silent --location https://deb.nodesource.com/setup_4.x | bash -
RUN apt-get install --yes nodejs
RUN apt-get install redis-server -y
RUN service redis-server restart

RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
RUN echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list
RUN apt-get update
RUN sudo apt-get install -y mongodb-org
RUN npm install -g node-gyp
RUN npm install

CMD node  index.js


在run 这个build好的images的时候 提示无法连接到redis
Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED 127.0.0.1:6379


请问这种情况改如何访问?
已邀请:

tuxknight

赞同来自:


不建议这样用docker,docker又不是虚拟机。
而且,dockerfile不是你这样写的。
而且,你docker run的时候都没把redis服务跑起来啊。
而且127.0.0.1 对应的是host而不是container的地址。因为container的IP默认是随机分配,所以访问container要用hostname。
先看看官方文档吧,你的疑问在那里都有答案。慢慢来。

要回复问题请先登录注册