docker 容器是否即时获取代码更改?

Kid*_*g_C 4 docker

我已经启动并运行了我的 docker 容器。有一个容器运行一些 python 代码,我发现它导致了一些错误。我想将一些代码行(主要是更多日志)添加到该特定容器内的 python 脚本中。

我想进入容器并docker exec -ti container_name bash开始编辑代码nano my_python_script.py。正在运行的容器是否会即时自动获取这些更改?

或者我需要做一些事情才能使这些更改生效,即打印新的日志信息?

Mar*_*nik 5

关于 docker 容器的一些事实:

  1. Docker 容器的生命周期与它运行的进程的生命周期一样长。
  2. Docker 容器是不可变的,因此无论您对容器本身的文件系统所做的任何更改都不会在容器重新启动后继续存在(我不是在谈论卷,而是更高级的东西)

基于这些事实:

问题基本上归结为my_python_script.py您“即时”所做的更改是否需要重新启动 python 进程。这实际上取决于你运行什么/如何运行 python。

如果需要重新启动 - 那么不,您将无法看到日志。重新启动也无济于事,因为事实“2” - 您将丢失更改(在这种情况下会打印额外的日志)。

如果 Python 能够动态地重新加载脚本并在同一进程中运行它(无需重新启动容器),那么您就可以做到这一点。