繁体   English   中英

如何从jenkins SSH进入运行的docker容器执行shell

[英]How to SSH into running docker container from jenkins execute shell

我正在从jenkins execute shell运行dind容器( dind

CONTAINER_ID="$(sudo docker run --privileged -i -d jpetazzo/dind)"

要在容器内执行docker命令,请进入容器外壳

sudo docker exec -it --privileged ${CONTAINER_ID} bash

并且比我试图在dind容器内执行这些命令。

sudo docker pull hubuser/hello-world

sudo docker run hubuser/hello-world

sudo docker tag imageId hubuser/hello-world:123

sudo docker login --username=hubuser --password=password

sudo docker push hubuser/hello-world

我在jenkins中编写的所有这7条命令都执行外壳。 下面给出的5条命令在dind容器外部dind不是内部执行。 如果我从终端尝试,则它是附加到容器外壳并正确执行。 我想在容器中执行它们,但要从詹金斯执行。 我还尝试在每个命令之前添加exec ,如下所示:

sudo docker exec -it --privileged ${CONTAINER_ID} sudo docker pull hubuser/hello-world

sudo docker exec -it --privileged ${CONTAINER_ID} sudo docker run hubuser/hello-world

等等。 这会在dind容器内执行命令,但所有命令都是并行执行的,因此在拉出并运行hello-world映像之前,它会尝试对其进行标记和推送。 在那里,它找不到任何要标记的hello-world图像,并且不执行任何操作。

我希望所有下面的5条命令在dind容器内dind执行,同样也要从jenkins execute shell中执行。

您的帖子标题是“如何SSH进入正在运行的docker”。 我只想指出这篇由Docker工程师撰写的文章: 如果在Docker容器中运行SSHD,那么您做错了!

看完您的文章后,那不是用ssh解决问题,我只是想:为什么不执行顺序执行您想要的bash脚本?

我不确定我是否很好理解,詹金斯在码头工人内部吗? 您是否正在docker中运行docker?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM