【问题标题】:lsb_release of the host OS in a DockerDocker 中主机操作系统的 lsb_release
【发布时间】:2017-03-30 17:45:27
【问题描述】:

我想获得我在 Docker 中运行的操作系统。

这就是我的docker-compose 的样子,我继承自python:2.7 图像

 version: '2'
 services:
   robot-configuration-interface:
     build: '.'
     restart: always
     network_mode: 'host'
     ports:
       - 8000:80
     environment:
       - REDIS_HOST=localhost
       - DEBUG=true
     volumes:
       - ~/logs/fetchcore-server:/var/log/supervisor
       - /var/run/docker.sock:/var/run/docker.sock
       - /opt/ros/indigo:/opt/ros/indigo
       - /etc/environment:/etc/environment
       - /etc/NetworkManager/system-connections/:/etc/NetworkManager/system-connections/
       - /lib:/lib
       - /usr/lib/:/usr/lib
       - /usr/bin/:/usr/bin/
       - /var/run/:/var/run/
     privileged: true
     user: root

lsb_release -d 命令返回 Debian GNU/Linux 8.7 (n/a) 而不是 Ubuntu 14.04.5 LTS,即使我正在安装 /usr/bin

【问题讨论】:

    标签: ubuntu docker docker-compose


    【解决方案1】:

    LSB 在基于 Debian 的发行版中已被弃用/忽略,并且该文件不存在于最流行发行版的 Docker 映像中。

    /etc/os-release 现在是首选。您可以看到该文件存在于许多发行版(甚至是 Alpine)的 Docker 映像中,而 /etc/lsb-release 则不是这种情况。

    【讨论】:

      【解决方案2】:

      答案是将/etc/lsb-release 安装到卷

      【讨论】:

      • 这会导致容器看到运行docker守护进程的机器的release,这可能与容器中运行的os不一样。
      猜你喜欢
      • 2017-08-30
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-06
      相关资源
      最近更新 更多