在重新配置docker环境时遇到的一个小问题,就是docker内部环境如果配置出错,那么在启动容器的同时是无法进入内部及时修改的:
####:/$ sudo docker exec -it ai bash
Error response from daemon: Container 2e1d778977b6dc58a83ef35401e774a16753954cd171e6247601a07c2518cc5f is restarting, wait until the container is running
这个时候想进入容器解决存在的问题的话可以这样做:
对自己CMD中配置的main文件或者执行函数文件(就是你的容器启动以后要跑的代码文件)进行简单修改,比如可以直接注释掉已有代码,然后写入如下代码:
import time
#debug use
def print_message():
print("这是一条定时消息")
def main():
start_time = time.time() # 记录程序开始时间
duration = 30 * 60 # 30 分钟,单位是秒
while True:
current_time = time.time()
elapsed_time = current_time - start_time
if elapsed_time >= duration: # 检查是否已经运行了 30 分钟
print("程序运行时间到达 30 分钟")
break
print_message()
time.sleep(3) # 每隔 3 秒打印一次消息
if __name__ == "__main__":
main()
可以先检查日志看看是否运行了上述代码:
sudo docker logs ai -f --tail 200
>>swjtu@swjtu:/$ sudo docker logs ai -f --tail 200
这是一条定时消息
这是一条定时消息
这是一条定时消息
这是一条定时消息
这是一条定时消息
这是一条定时消息
这是一条定时消息
这是一条定时消息
这是一条定时消息
这是一条定时消息
这是一条定时消息
就相当于让程序变成一个计时器,可以自己设置运行时间,我设置了30分钟,这样可以直接启动docker容器然后进入内部解决问题。
sudo docker exec -it <ID> bash