我的脚本如下:
# 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
答案 0 :(得分:2)
您在运行命令期间给出了-it
。打开容器的/bin/bash
并等待那里。在第一个命令执行完成之前,下一个命令不会执行。
创建脚本文件并在制作docker时将其移动到容器内更好。并在启动docker时运行脚本。您可以使用泊坞窗文件中的CMD
指定。
您不需要额外的exec命令。
相应的Dockerfile将是
FROM ubuntu:latest
COPY <path-to-script> <dest>
CMD [" <path-to-script> "]
您必须与Dockerfile一起创建脚本文件。使用命令
构建dockerdocker build -t <image-name> <location of Dockerfile>
执行命令是
docker run -d --name <name> -d ubuntu <path-to-script>