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

如何在退出docker容器时继续运行脚本,docker,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 但是脚本将在退出后立即

我的脚本如下:

# 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
但是脚本将在退出后立即停止并挂起。有人知道为什么吗


p、 s:My Docker版本是:17.03.0-ce,build 60ccb22

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

最好创建一个脚本文件,并在创建docker时将其移动到容器中。并在启动docker时运行脚本。您可以在docker文件中指定使用
CMD

您不需要额外的exec命令

相应的Dockerfile将是

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

CMD [" <path-to-script> "]
来自ubuntu的
最新版本
复制
CMD[“”]
您必须与Dockerfile一起创建脚本文件。使用命令生成docker

docker build -t <image-name> <location of Dockerfile>
docker构建-t
执行命令将是

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

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

最好创建一个脚本文件,并在创建docker时将其移动到容器中。并在启动docker时运行脚本。您可以在docker文件中指定使用
CMD

您不需要额外的exec命令

相应的Dockerfile将是

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

CMD [" <path-to-script> "]
来自ubuntu的
最新版本
复制
CMD[“”]
您必须与Dockerfile一起创建脚本文件。使用命令生成docker

docker build -t <image-name> <location of Dockerfile>
docker构建-t
执行命令将是

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

我想要运行的实际映像是mongo()。如果我将其用作基本映像,我甚至无法运行bash脚本,即使我想这样做。您需要使用相应的脚本文件构建自定义Docker映像。您不应该将其作为bash脚本运行和执行。mongo的Dockerfile在这里可用。您可以编辑它并创建自定义docker。同意上述方法,并希望再添加一点。为了保持容器的运行,必须有一个持续运行的进程。在脚本末尾添加以下行。虽然真实;在后台做点什么&我明白了。好的,让我这样试试。我想要运行的实际映像是mongo()。如果我将其用作基本映像,我甚至无法运行bash脚本,即使我想这样做。您需要使用相应的脚本文件构建自定义Docker映像。您不应该将其作为bash脚本运行和执行。mongo的Dockerfile在这里可用。您可以编辑它并创建自定义docker。同意上述方法,并希望再添加一点。为了保持容器的运行,必须有一个持续运行的进程。在脚本末尾添加以下行。虽然真实;在后台做点什么&我明白了。好吧,那我就这样试试。