如何在通过 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 供用户输入。
我正在使用笔记本电脑 (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 供用户输入。