我有一个有趣的问题,我似乎找不到答案。我正在创建一个bash脚本,它将允许我自己和其他与我一起工作的开发人员自动创建停靠映像,以及运行NginX和创建will服务器的容器。我所有的东西都运行的很好,我可以运行一个单行,它将完成所有需要的事情。当我希望能够从bash脚本中退出Docker容器时,问题就出现了。我说的一个简单的例子是..。
#!/bin/bash
sudo docker run --name $1 -i -p $2 -t $3显然,这是一个非常简单的例子,但它将做的是启动一个新的码头集装箱名称,无论他们想要什么,通过任何他们决定的港口,并使用他们想要的任何形象。
真正的问题是当我想退出那个码头集装箱的时候。我不能仅仅向bash文件添加一个"exit 13“,因为它将在docker命令停止之后才会运行,这是因为我不能退出它。
如果码头容器只启动码头容器中的终端会话,我将如何让bash脚本强制码头容器退出?
我知道我可以在码头提示符中的码头容器中手动输入"exit 13“,但是我想让我的bash脚本创建码头容器退出它。
我不知道这是怎么可能的,如果是的话。在我看来,bash脚本在前一个命令停止之前不能运行下一个命令,但除非我停止,否则前面的命令不能停止。似乎是鸡与蛋的问题,但我希望有人已经找到了一个方法,使类似的工作。提前感谢您的帮助。
发布于 2016-12-09 19:32:47
在码头运行时使用-d选项
sudo docker run -d --name $1 -i -p $2 -t $3
-d, --detach => Run container in background and print container ID
当你完成时,杀死康塔纳
docker kill $1
https://stackoverflow.com/questions/41067214
复制相似问题