VScode远程容器-如何查看停靠的服务控制台输出



这是这个问题的后续内容(目前的答案似乎都没有切中要害(。

VScode启动远程VScode会话(使用VScode远程容器(的默认行为似乎是:

  1. 运行项目的docker compose文件
    • 如果用户在构建期间选择显示日志(UI弹出窗口(,则打开一个名为Dev Containers的VScode终端会话,反映Docker的构建日志记录,并辅以VScode远程容器日志记录。此输出在生成完成后结束
    • 如果用户没有选择显示日志,并且稍后在构建完成后打开一个VScode终端,那么只需在容器中启动一个新的bash会话。不存在其他VScode终端会话
  2. 从正在运行的容器内部启动VScode会话

从用户的角度来看,容器正在运行,但容器内发生的输出似乎不可访问(即使docker composecommand没有使用守护进程模式(。

那么,用户现在如何查看容器内发生的控制台输出呢

如果我读得正确的话,VScode远程容器文档似乎建议覆盖默认行为,即:

  • 暂停您的docker composecommand,否则它会启动服务,而是在创建时应用一些伪命令来持久化容器,然后
  • 从远程会话内部手动启动服务(使用调试模式或通过VScode终端(。这揭示了输出,但在可访问的VSCode终端会话内

没有办法:

A( 通过系统终端(例如docker-compose up(启动服务,然后在此已经运行的容器*或中启动VSCode远程会话

B( 访问服务的输出而不必如上所述进行覆盖(覆盖似乎很糟糕(

*这将是理想的。"远程容器";附加到正在运行的容器"这个命令听起来很接近这个。但它似乎在一个我不认识的目录中实例化了自己,而且似乎不是容器。

似乎可以实现选项A

  1. 在终端中启动服务(docker-compose up(
  2. 在vscode中,使用远程容器";远程资源管理器";UI(而不是cmd+P"附加到容器"命令(,以选择正在运行的容器的工作目录。右键单击>quot;在容器中打开";。这实际上并没有打开新的容器;打开目录,从容器内">

OR(感谢@cybercoder(

  1. 让vscode启动服务
  2. 在单独的终端中:docker logs -f container_namedocker-compose logs -f

最新更新