我有一个有趣的问题,我似乎无法找到答案。我正在创建一个bash脚本,允许我和我合作的其他开发人员自动创建docker镜像,以及运行NginX并创建web服务器的容器。我运行的一切都很好,我可以运行一行,它将完成所需的一切。当我希望能够从bash脚本中退出Docker容器时,问题出现了。 我正在谈论的一个简单例子是......
#!/bin/bash
sudo docker run --name $1 -i -p $2 -t $3
Obvioulsy这是一个非常简单的例子,但它会做的是开始一个新的docker容器名称,无论他们想要什么,传递他们决定的任何端口,并使用他们想要的任何图像。
当我想退出该docker容器时,真正的问题出现了。我不能只是添加"退出13"到bash文件,因为它在docker run命令停止之后才会运行,因为它不能退出它。
如果该docker容器除了在docker容器中启动终端会话之外什么也没做,那么我如何让我的bash脚本强制Docker容器退出?
我知道我可以手动输入"退出13"在docker容器中的终端提示符中,但我想让我的bash脚本创建docker容器退出它。
如果可能的话,我已经完全失去了。我看到它的方式bash脚本无法运行下一个命令,直到上一个命令停止,但上一个命令不能停止,除非我停止它。看起来像鸡与鸡蛋问题,但我希望有人找到了一种方法来做这样的工作。提前感谢您的帮助。
答案 0 :(得分:2)
在docker run
中使用-d选项 strings.forEach(System.out::println);
sudo docker run -d --name $1 -i -p $2 -t $3
当你完成了杀死conatainer
-d, --detach => Run container in background and print container ID