繁体   English   中英

如何在 alpine linux docker 中使用端口

[英]how to use ports inside alpine linux docker

有什么办法可以为我的 nodejs 使用 redis 服务,我正在使用 alpine docker 并且我的 node-redis 客户端无法连接到 redis(它说“无法连接到 127.0.0.1:6479 ”),我已经尝试了很多东西但它不起作用,我只想通过 docker file 而不是 docker-compose 来实现。 这是我的 docker 文件代码

FROM alpine
RUN apk add --update nodejs npm redis
EXPOSE 6379 9000
WORKDIR /server
COPY . /server/
RUN npm install
RUN redis-server &
CMD npm start

您的问题是RUN redis-server & RUN 语句在构建时运行,因此当您的容器启动时,redis-server 进程不再存在。 您需要在运行时像这样在 CMD 语句上启动它

CMD redis-server & npm start

但正如 Zac 指出的那样,“docker 方式”是将 Redis 运行在一个单独的容器中。 您可以使用 docker hub 上现成的 redis 映像。

可以在一个 Docker 容器中运行多个命令,但这是一种不好的做法。 你可以通过让你的npm start运行一个同时运行你的服务器和 Redis 的脚本,或者使用像concurrentlynpm-run-all这样的包来做到这一点。 不过,Docker 的良好做法是每个容器都有一个可执行文件,因此 Docker 正确的做法是将 Redis 放在一个单独的容器中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM