docker - docker 容器会即时获取代码更改吗?
问题描述
我已经启动并运行了我的 docker 容器。有一个容器运行一些 python 代码,我发现它导致了一些错误。我想在该特定容器内的 python 脚本中添加一些代码行(主要是更多日志)。
我只想通过 进入容器docker exec -ti container_name bash
并开始编辑代码nano my_python_script.py
。正在运行的容器是否会即时自动获取这些更改?
或者我需要做些什么才能使这些更改生效,即打印新的日志记录信息?
解决方案
关于 docker 容器的几个事实:
- Docker 容器的生命周期与它运行的进程通常一样长。
- Docker 容器是不可变的,因此无论您在容器本身的文件系统中所做的任何更改都不会在容器重新启动后继续存在(我不是在谈论卷,它是更高级的东西)
基于这些事实:
问题基本上归结为my_python_script.py
您“即时”所做的更改是否需要重新启动python进程。这实际上取决于您运行 python 的内容/方式。
如果它需要重新启动 - 那么不,您将无法看到日志。重新启动也无济于事,因为事实上“2” - 您将丢失更改(在这种情况下会打印额外的日志)。
如果 Python 能够动态地重新加载脚本并在同一进程中运行它(无需重新启动容器),那么您可以这样做。
推荐阅读
- python - 如何使用函数找到单词在列表中的位置?
- python - AttributeError:张量没有属性 Child
- c# - 命令聚合失败:来自 mongot :: 的远程错误由 :: \"origin\" 引起,必须是日期、数字或 geoPoint(来自 \"compound.should[1].near\")
- python-3.x - 如何将列表中的所有元组组合到一个列表中?还将列表中的第一行与所有其他行进行比较
- r - R:如何转换数据框
- javascript - TypeScript - 如何将反应上下文与调度动作分开?
- javascript - 如何在 Google 电子表格的 HTML 代码中创建和 JS 变量?
- google-analytics - 使用 UTM 参数查找站点上的所有 URL
- c++ - c ++将文件读入对象向量,然后复制到向量指针
- java - 试图在两个边界键之间找到符号表的严格范围