【问题标题】:How can I find the host OS from a docker container?如何从 docker 容器中找到主机操作系统?
【发布时间】:2022-11-22 02:22:51
【问题描述】:

我在 docker 容器中运行我的代码,我需要知道主机是 macOS、windows 还是 linux。我怎么做?任何未记录的黑客都可以,我只需要记录此信息以进行故障排除。

【问题讨论】:

  • 我认为没有记录在案的方法,但是有一种特定于操作系统的方法可以处理 host.docker.internal 和 docker.for.mac.localhost 的 DNS 查找。具体来说,在适用于 Mac 的 Docker Desktop 上,两者都存在;在 Windows 的 Docker Desktop 上,只有第一个存在,而在 Linux 的 Docker Engine 上,两者都不存在。

标签: docker


【解决方案1】:

从我读到的,这不是为了工作。您始终可以在启动容器时传递环境变量,这可能是您最好的选择:

对于docker-compose:

web:
  environment:
    - HOST_OS=linux

对于docker run:

docker run --env HOST_OS=linux

HOST_OS 的值可以是硬编码的,也可以是来自主机操作系统的另一个环境变量。

由于您写的只是用于故障排除,这应该足够了,但是,如果您计划在容器中以不同方式处理不同的操作系统,您可以考虑使用具有运行时环境的语言(C#、Java 等)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    • 1970-01-01
    相关资源
    最近更新 更多