首页 > 解决方案 > 如何使用 docker compose 将本地 redis 连接到 docker 容器

问题描述

我在将本地 redis 与 docker 容器连接时遇到问题,这是我的 docker compose 文件。

version: "3"

services:
  test:
    build: .
    stdin_open: true
    tty: true
    command: nodemon --delay 6 index.js
    volumes:
      - .:/opt/test
    ports:
      - "5007:5007"
    links:
      - redis
  redis:
    image: redis:latest
    container_name: qbo_redis
    restart: always
    ports:
      - "6379:6379"

但它不起作用。

得到错误

bash
TI runtime exec failed: exec failed: container_linux.go:345: starting container process caused "exec: \"3ed84a23c52d\": executable file not found in $PATH": unknown

如果我从 docker-compose.yml 文件中删除 redis 条目,它的工作没有任何错误。

标签: dockerredisdocker-compose

解决方案


docker ps -q返回容器列表,不能用于访问 shell。用于docker ps -ql处理最后创建的容器。

redis图片不包含 Bash。它们基于 Alpine Linux,但您可以使用/bin/sh. 试试这个方法:

 docker exec -it qbo_redis /bin/sh

或者

 docker exec -it $(docker ps -ql) /bin/sh

推荐阅读