程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

How to reenter to the container script execution?

发布于2025-01-04 14:56     阅读(74)     评论(0)     点赞(7)     收藏(1)


I have container and python script that need to be run forever, for example:

import time    
if __name__ == "__main__":
    n = 0
    while True:
        print(f"Script is running! I want to see this string ! N is {n}")
        n += 1
        time.sleep(200)

So I

  1. Enter to the virtual machine using mobaxterm
  2. Enter to the container as docker exec -it -u root container_name bash
  3. Run script inside container as python my_script.py
  4. Script start working and I can see string which script prints in stdout...
  5. Script is running! I want to see this string !

But session was interrupted, but the script still is running. What can I do to enter into the "script" to see the string/logs which it produces? How can I do it without interrupting the script? It needs to run forever inside the container.


解决方案


Make the script be the only thing the container does. For example, in your Dockerfile, make the default CMD be to run the script

FROM python:3.13
ENV PYTHONUNBUFFERED=1
WORKDIR /app
COPY my_script.py ./
CMD ["./my_script.py"]

And then you just run it. You don't need to "enter" anything or run any commands in interactive shells; just launch the container from the image.

docker build -t my-image .
docker run -d --name my-container my-image
docker logs -f my-container

The last line prints the logs from the container. If you stop it for whatever reason, the container is still running, and you can re-run docker logs to see the logs again.

Compare this setup to, for example, the standard postgres container: you don't normally start the container, get a shell, and then start the database; instead, you just run the container, and the only thing inside the container is the database server. docker exec is a useful debugging tool, but you shouldn't need it in normal use.



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/2046753/063a33bbede597803dec/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

7 0
收藏该文
已收藏

评论内容:(最多支持255个字符)