docker - 如何使用 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 条目,它的工作没有任何错误。
解决方案
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
推荐阅读
- javascript - 如何在 React Native 中的图像中绘制矩形
- python - 如何导入与带有子包和模块的纯python包同名的python扩展模块?
- ajax - 即使 `Access-Control-Allow-Origin: *` 也会出现 CORS 错误
- r - 为什么我的fluidRow 在列中呈现(见图)
- c++ - 我的代码是完整的,至少我相信它是......为什么它不能按预期运行?
- azure - 如何让某些代码仅在第一次运行时运行 Azure 函数?
- node.js - Node.js 中的错误请求错误 | 未声明纯文本文档的字符编码。文件
- javascript - 如何使用 JavaScript 将 DateTime 的 C# 输出转换为“剩余天数”?
- c# - 无法使用 MemoryCache 访问已处置的对象
- git - 当我不小心在用户中创建了一个 git 目录时,如何删除我的 git 目录。终端 > /Users/juggularvein: 是一个目录