如何在通过 ssh 连接时将进程 运行 保留在 docker 中的 AWS 实例中

How to keep processes running in docker at AWS instance when connected via ssh

我正在使用笔记本电脑 (Linux) 处理 AWS 实例(机器学习任务)。我想要 运行 我的代码并退出会话,停止计算机。如何在不停止可能需要 1 天的程序执行的情况下做到这一点?

目前我使用这些命令:

ssh -i $HOME/.ssh/file.pem ubuntu@[IP-AWS] 连接到 AWS 实例。

docker run --gpus all -u $(id -u):$(id -g) -it --rm --name tempo -v /data:/tf [MY_IMAGE] /bin/bash打开docker图片

python train.py [MY_INSTRUCTIONS] 2>&1 | tee out_file 到 运行 脚本到 运行 我的脚本

我的脚本不使用我计算机中的文件,/data 磁盘已附加到实例。无需开着电脑。 但是如果我关闭终端,程序就会停止。

如何执行相同的任务:启动脚本然后断开连接?我怎么知道程序何时停止?

我找到了 nohup 命令,但我不明白如何在我的案例中使用它(我是初学者)。

在此先感谢您的帮助。

您可以通过 运行 背景中的 docker 容器使用 -d 执行此操作,如此处讨论(使用 docker run -d):

您还应该删除 -it 标志。那些将进程标记为 'interactive' 因此它将 ask/wait 供用户输入。