无法在已安装Redis的Docker容器中使用Redis-cli

时间:2019-08-24 23:09:55

标签: docker redis docker-compose containers redis-cli

我正在研究一个Python-Flask项目,该项目具有两个分别用于Web应用程序和postgres数据库的docker容器。我想开始在Web应用程序中使用rq和redis,所以我添加了一个存放redis服务器的docker容器。当我尝试从Web应用程序容器ping Redis容器时,我无法使用redis-cli。 Redis已安装在Web应用程序容器中。为什么不能从Web应用程序容器中使用redis-cli

当我从Redis容器中对Redis服务器执行ping操作时,响应指示服务器已启动。

docker exec -it MyApp_redis_1 redis-cli ping
PONG

但是,当我尝试从Web应用程序容器内对Redis服务器执行ping操作时,我什至无法使用redis-cli。我在Web容器中运行了pip freeze,并确认已安装redis==3.2.1。不过,我仍然收到以下错误消息

docker exec -it MyApp_web_1 redis-cli ping
OCI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"redis-cli\": executable file not found in $PATH": unknown

当我尝试从Web应用程序容器中的外壳程序使用redis-cli时,也会收到错误消息:

/usr/src/app/MyApp$ redis-cli ping
bash: redis-cli: command not found

为什么我不能在已安装Redis的Docker容器中使用redis-cli?

这是我的docker-compose.yml文件的摘录:

version: "3"

services:
 redis:
  restart: always
  image: redis:5.0.5
  command: ["redis-server", "--appendonly", "yes"]
  hostname: redis

 web:
   restart: always
   build:
      context: .
      args:
      - DOCKER_BUILD_ENV
      dockerfile: ./dockerfiles/web/Dockerfile
   environment:
     ****variables that I won't put on StackOverflow****
   volumes:
     - ./MyApp/:/usr/src/app/MyApp/:z
   links:
     - postgres:postgres
     - redis:redis
   expose:
     - "3000"
   command: scripts/entrypoint.sh
   ports:
     - "3000:3000"

感谢您的阅读! (如果需要,我也可以共享我的Dockerfile。)

0 个答案:

没有答案