当我尝试使用 docker 上下文从远程服务器上的本地计算机运行此命令时,我遇到了 docker-compose 问题:
docker-compose --context remote up -d
Run Code Online (Sandbox Code Playgroud)
我明白了:
ssh: connect to host xxx.xxx.xxx.xxx port 22: Connection refused
Run Code Online (Sandbox Code Playgroud)
我仅使用此命令收到此错误,其他一切正常(如 ps 或 log 命令)。另外,常规 ssh 连接工作正常,所以我不认为我的 ssh 配置有问题。
据我所知,以详细方式运行命令不会提供任何有用的信息。
小智 9
我有这个确切的问题。这 3 个命令可以正常运行。
docker --context remote ps
docker --context remote run hello-world
ssh root@my-ubuntu-host
Run Code Online (Sandbox Code Playgroud)
但是,对于更复杂的 docker-compose.yml 文件,我会收到连接拒绝错误。使用 sudo 运行并没有解决我的问题。
事实证明,ufw(在我的数字海洋 Droplet 上预安装和预配置)对新的 SSH 连接进行了速率限制。而且 docker-compose 似乎并没有在单个会话中运行所有内容,而是单独运行每个命令。
我的解决方案是取消 SSH 连接的速率限制。
ufw delete limit 22/tcp
ufw reload
Run Code Online (Sandbox Code Playgroud)
我这个答案晚了大约一年,但希望它能对那里的人有所帮助。