![](/img/trans.png)
[英]Unable to execute commands inside docker container in Jenkins Execute 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.