gpt4 book ai didi

bash - 如何使用 ssh 直接连接到远程 docker 容器

转载 作者:行者123 更新时间:2023-11-29 09:11:41 25 4
gpt4 key购买 nike

我想直接使用 ssh 连接到远程运行的 Docker 容器。通常我可以

$ ssh -i privateKey user@host
$ docker ps #which will list all running containers
$ docker exec -it ***** bash deploy.sh # ***** is container id and this line run a deployment script

但我需要从 Jenkins 管道运行此脚本,我只有一次机会。经过多次尝试,我想出了这个

$ ssh -tt -i ~/privateKey user@host docker exec -it $(docker ps | grep  unique_text | cut -c1-10) /bin/bash deploy.sh

这对我的困境没有帮助,因为它返回了

"docker exec" requires at least 2 arguments.

这实际上意味着命令在这里被截断 $(docker ps | grep ...

我的解决方案

sh 'ssh -tt -i $FILE -o StrictHostKeyChecking=no $USER@$HOST/bin/bash -c\'"docker exec -it $(docker ps | grep unique_text | cut -c1- 10) bash 开始.sh"\''

最佳答案

$ ssh -tt -i ~/privateKey user@host docker exec -it $(docker ps | grep  unique_text | cut -c1-10) /bin/bash deploy.sh

这将在您的本地机器上使用 docker ps 命令运行子 shell,而不是远程机器。您需要在远程服务器上的 shell 中处理该完整命令:

$ ssh -tt -i ~/privateKey user@host /bin/sh -c "docker exec -it $(docker ps | grep  unique_text | cut -c1-10) /bin/bash deploy.sh"

关于bash - 如何使用 ssh 直接连接到远程 docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52408764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com