Python 3.x 我有一个python脚本在kubernetes吊舱的容器中运行。如何停止随着吊舱启动而运行的脚本?
我在Kubernetes吊舱的容器中运行两个线程,一个线程将一些数据推送到db,另一个线程烧瓶应用程序显示来自数据库的数据。因此,一旦pod启动main.py,就会调用上面提到的两个线程 Docker文件:Python 3.x 我有一个python脚本在kubernetes吊舱的容器中运行。如何停止随着吊舱启动而运行的脚本?,python-3.x,docker,flask,kubernetes,python-multithreading,Python 3.x,Docker,Flask,Kubernetes,Python Multithreading,我在Kubernetes吊舱的容器中运行两个线程,一个线程将一些数据推送到db,另一个线程烧瓶应用程序显示来自数据库的数据。因此,一旦pod启动main.py,就会调用上面提到的两个线程 Docker文件: FROM python:3 WORKDIR /usr/src/app COPY app/requirements.txt . RUN pip install -r requirements.txt COPY app . CMD ["python3","
FROM python:3
WORKDIR /usr/src/app
COPY app/requirements.txt .
RUN pip install -r requirements.txt
COPY app .
CMD ["python3","./main.py"]
我有两个问题:
日志是查看正在运行的脚本输出的唯一方法吗?当它在终端上运行时,我们不能连续看到它的输出吗
此外,我无法通过进入容器来运行相同的main.py文件。它抛出以下错误:
如何停止与pod一起启动的main.py脚本,并能够直接从容器本身运行main.py
谢谢。错误消息显示:
OSError: [Errno 98] Address already in use (edited)
看起来python脚本试图打开同一端口两次。你不能那样做。检查代码并修复它
现在回答你的另一个问题:
日志是查看正在运行的脚本输出的唯一方法吗?当它在终端上运行时,我们不能连续看到它的输出吗
运行kubectl logs-f将跟随日志,这将让您在终端中运行时连续看到输出。从CMD停止main.py基本上会停止容器的主进程,因此将杀死容器和吊舱。也许您想让该进程保持独立,而是用另一个端口运行另一个main.py实例?pod启动后,它将启动容器,然后调用main.py,因为api连接导致出现错误,脚本停止。现在,当我尝试进入容器并运行python3 main.py时,我遇到了上述错误。如何停止与pod创建一起启动的main.py?在代码中,我没有两次访问同一个端口。它在docker中工作得很好。有没有办法杀死从pod开始的main.py脚本并从容器中运行python3 main.py而不杀死pod?不,你不能交换进程。实际上,您在容器中访问同一端口两次,然后运行python3 main.py。一个main.py进程已在运行。当您启动第二个进程时,它将导致错误,因为它试图绑定到另一个进程已保留的端口。好的,谢谢。
OSError: [Errno 98] Address already in use (edited)