如何在退出docker容器时继续运行脚本

时间:2017-03-18 16:24:16

标签: docker

我的脚本如下:

# start a ubuntu container in the background
docker run -it --name ub -d ubuntu /bin/bash
sleep 1

# run a command in the container
docker exec -it ub bash
echo 234

# exit the container
exit
sleep 1

# do something else
echo 123

但是脚本会在exit之后立即停止并挂起。有谁知道为什么会这样?

p.s:我的Docker版本是:17.03.0-ce,build 60ccb22

1 个答案:

答案 0 :(得分:2)

您在运行命令期间给出了-it。打开容器的/bin/bash并等待那里。在第一个命令执行完成之前,下一个命令不会执行。

创建脚本文件并在制作docker时将其移动到容器内更好。并在启动docker时运行脚本。您可以使用泊坞窗文件中的CMD指定。

您不需要额外的exec命令。

相应的Dockerfile将是

FROM ubuntu:latest
COPY <path-to-script> <dest> 

CMD [" <path-to-script> "]

您必须与Dockerfile一起创建脚本文件。使用命令

构建docker
docker build -t <image-name> <location of Dockerfile>

执行命令是

docker run -d --name <name> -d ubuntu <path-to-script>