我有一个正在运行的 Windows Server,我可以通过 ssh 连接到该服务器。 如果我随后使用以下命令启动 Docker Desktop 和 Docker 容器:
docker run -d --name pg-test -e POSTGRES_DB=testdb -e POSTGRES_USER=testuser -e POSTGRES_PASSWORD=test -e PGDATA=/var/lib/postgresql/data/pgdata -e POSTGRES_INITDB_ARGS="--encoding=UTF-8 --lc-collate=C --lc-ctype=C" -v testDbPostGres:/var/lib/postgresql/data -p 5432:5432 postgres:latest
如果我关闭 ssh 连接,它会自动关闭。
为什么会出现这种情况?
发生这种情况是因为您启动的 Docker 容器在后台运行并附加到您的 SSH 会话。当您关闭 SSH 连接时,会话将结束,并且附加到它的所有进程(包括 Docker 容器)都将终止。
为了防止关闭 SSH 连接时 Docker 容器关闭,可以使用 nohup 命令将进程与会话分离,也可以使用 screen 或 tmux 等工具创建一个可分离的持久会话,稍后重新连接。这些方法允许 Docker 容器即使在关闭 SSH 连接后也能继续运行。