首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从jenkins执行shell通过SSH进入运行的docker容器

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

Stack Overflow用户
提问于 2015-12-01 02:40:17
回答 1查看 3.8K关注 0票数 2

我正在运行一个来自jenkins execute shell的docker容器(dind)

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

为了在容器内执行docker命令,我进入了容器shell

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个命令都可以执行shell。下面给出的5个命令是在dind容器外执行的,而不是在容器内执行的。如果我从终端尝试,那么它将连接到容器外壳并正确执行。我想在容器中执行它们,而不是从jenkins执行。我还尝试在每个命令之前添加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容器中串行执行,这个容器也来自jenkins execute shell。

EN

回答 1

Stack Overflow用户

发布于 2015-12-01 15:05:10

你这篇文章的标题是“如何ssh into running docker”。我只想指出这篇由Docker工程师写的文章:If you run SSHD in your Docker containers, you're doing it wrong!

在我读了你的帖子后,这并不是在用ssh来处理问题,我只是在想:为什么不按你想要的顺序执行bash脚本呢?

我不确定我是否理解的很好,顺便说一句,詹金斯在码头里吗?你在码头上运行码头吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34005622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档