我正在从Jenkins执行shell中运行一个名为
我希望所有以下5个命令都能在
dind
的Docker容器。
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
这7个命令都是我在Jenkins执行shell中编写的。以下给出的5个命令是在dind
容器外执行的,而不是在容器内部执行。如果我从终端尝试,则会附加到容器shell并正常执行。但我想从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执行shell中执行。