docker run命令挂起,直到容器停止

问题描述 投票:0回答:1

我试图在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
docker
1个回答
0
投票

要防止这种情况,您应该通过指定-d=true或仅使用-d选项以分离模式启动容器。如果未指定,则docker默认为前台模式,该模式将控制台附加到容器的标准输入,输出和标准错误内的进程,这使得它看起来好像您的终端处于“挂起”状态。

所以尝试:

docker run -d pptpserver

您可以在Docker Run Reference文档中阅读有关此行为的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.