python软件打不开机_在Docker运行时,Python应用程序不会打印任何内容

我有一个Python(2.7)应用程序,它是在我的docker文件中启动的:

CMD ["python","main.py"]

main.py在启动时打印一些字符串,然后进入循环:

print "App started"

while True:

time.sleep(1)

只要我使用-it标志启动容器,一切都按预期工作:

$ docker run --name=myapp -it myappimage

> App started

我可以通过日志看到相同的输出:

$ docker logs myapp

> App started

如果我尝试使用-d标志运行相同的容器,容器似乎正常启动,但是看不到任何输出:

$ docker run --name=myapp -d myappimage

> b82db1120fee5f92c80000f30f6bdc84e068bafa32738ab7adb47e641b19b4d1

$ docker logs myapp

$ (empty)

但容器仍然似乎跑;

$ docker ps

Container Status ...

myapp up 4 minutes ...

附件不显示任何内容:

$ docker attach --sig-proxy=false myapp

(working, no output)

任何想法出什么问题?在背景中运行时,“print”的行为是否有所不同?

Docker版本:

Client version: 1.5.0

Client API version: 1.17

Go version (client): go1.4.2

Git commit (client): a8a31ef

OS/Arch (client): linux/arm

Server version: 1.5.0

Server API version: 1.17

Go version (server): go1.4.2

Git commit (server): a8a31ef

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种虚拟化技术,通过容器化技术可以轻松地打包应用程序和依赖项,并在任何地方进行部署和运行。在Docker运行Python程序的过程如下: 1. 编写Dockerfile 首先,需要编写Dockerfile来描述如何构建Docker镜像。在Dockerfile中,需要指定基础镜像、安装Python依赖项、拷贝Python代码等操作。 例如,以下是一个简单的Dockerfile示例: ``` FROM python:3.8 WORKDIR /app COPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["python", "app.py"] ``` 其中: - `FROM python:3.8`:指定基础镜像为Python 3.8。 - `WORKDIR /app`:指定工作目录为`/app`。 - `COPY requirements.txt ./`:将当前目录下的`requirements.txt`文件拷贝到容器中的`/app`目录。 - `RUN pip install --no-cache-dir -r requirements.txt`:安装Python依赖项。 - `COPY . .`:将当前目录下的所有文件拷贝到容器中的`/app`目录。 - `CMD ["python", "app.py"]`:指定容器启动执行的命令。 2. 构建Docker镜像 执行以下命令构建Docker镜像: ``` docker build -t my-python-app . ``` 其中,`my-python-app`是镜像名称,`.`表示Dockerfile所在目录。 3. 运行Docker容器 使用以下命令运行Docker容器: ``` docker run -it --rm my-python-app ``` 其中,`my-python-app`是镜像名称。 4. 查看运行日志 在控制台中可以看到Python程序运行日志。 以上就是在Docker运行Python程序的基本流程。需要特别注意的是,如果Python程序需要连接其他服务,需要在Dockerfile中添加相应的依赖项和环境变量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值