我试图在Docker容器中运行PPTP VPN服务器。但是当我执行命令docker run pptpserver
,或者我尝试的所有不同的容器时,它会工作但我的光标只是闪烁而且不让我做任何其他命令。我尝试了一个非常简单的方法,只是在容器中复制test.sh并运行它,然后打印一个有限时间测试,但我想要一个在后台的容器。
test.sh:
#/bin/bash
while :; do
echo "test"
sleep 2
done
我可以阻止它的唯一方法是在另一个终端停止容器。我可以做些什么来在后台运行像喊叫一样的容器。
# docker version
Client:
Version: 17.12.1-ce
API version: 1.35
Go version: go1.10.1
Git commit: 7390fc6
Built: Wed Apr 18 01:23:11 2018
OS/Arch: linux/amd64
Server:
Engine:
Version: 17.12.1-ce
API version: 1.35 (minimum version 1.12)
Go version: go1.10.1
Git commit: 7390fc6
Built: Wed Feb 28 17:46:05 2018
OS/Arch: linux/amd64
Experimental: false
要防止这种情况,您应该通过指定-d=true
或仅使用-d
选项以分离模式启动容器。如果未指定,则docker默认为前台模式,该模式将控制台附加到容器的标准输入,输出和标准错误内的进程,这使得它看起来好像您的终端处于“挂起”状态。
所以尝试:
docker run -d pptpserver
您可以在Docker Run Reference文档中阅读有关此行为的更多信息。