在 docker 容器中出现错误“/usr/local/bin/docker-entrypoint.sh: 16: exec: redis-server --port 6000: not found”
Posted
技术标签:
【中文标题】在 docker 容器中出现错误“/usr/local/bin/docker-entrypoint.sh: 16: exec: redis-server --port 6000: not found”【英文标题】:Getting error "/usr/local/bin/docker-entrypoint.sh: 16: exec: redis-server --port 6000: not found" inside docker container 【发布时间】:2019-12-08 11:02:14 【问题描述】:我正在使用 docker compose 启动一个 docker 容器并传递我希望它使用的端口。但是启动redis的命令不起作用,并且说找不到:
/usr/local/bin/docker-entrypoint.sh: 16: exec: redis-server --port 6000: 未找到
docker-compose
version: '2.1'
services:
redis:
image: redis
ports:
- $Ports_Exposed_Redis:$Ports_Exposed_Redis
command:
- redis-server --port $Ports_Exposed_Redis
我将Ports_Exposed_Redis
作为环境变量传递,例如:
export Ports_Exposed_Redis=6000
如何将端口传递给它以运行 redis?
【问题讨论】:
【参考方案1】:你使用- redis-server --port $Ports_Exposed_Redis
,表示你要使用CMD
的exec form
,但是你的yaml格式不对,指的是this:
你应该使用:
command:
- redis-server
- --port
- $Ports_Exposed_Redis
或者:
command: ["redis-server", "--port", "$Ports_Exposed_Redis"]
【讨论】:
@atlinr 谢谢。如果我这样做,我还可以运行另一个命令吗?因为它看起来像是在构建一条线 不,只有最后一个命令才会生效。你可能想看看docs.docker.com/config/containers/multi-service_container,这里的命令只是作为docker-entrypoint.sh的参数,最后会被exec
执行替换当前进程,见this以上是关于在 docker 容器中出现错误“/usr/local/bin/docker-entrypoint.sh: 16: exec: redis-server --port 6000: not found”的主要内容,如果未能解决你的问题,请参考以下文章
在 docker 容器中出现错误“/usr/local/bin/docker-entrypoint.sh: 16: exec: redis-server --port 6000: not found”
如何避免使用 Visual Studio 和 docker 容器在 API 上出现连接被拒绝错误?
Grails clean 命令在 Ubuntu docker 容器中给出错误
keycloak 容器正在重新启动,但出现错误 docker-compose
Django docker 容器无法连接到 mysql 容器,出现错误“无法连接到 'db' (111) 上的 MySQL 服务器”)