代码之家  ›  专栏  ›  技术社区  ›  xetra11

如何检查docker映像依赖于什么操作系统?

  •  16
  • xetra11  · 技术社区  · 7 年前

    我想扩展我的jenkins镜像,安装docker,这样它就可以从项目中构建Dockerfile。

    我用过 docker image inspect <imagename>

    6 回复  |  直到 7 年前
        1
  •  15
  •   swapnil dwivedi    3 年前
    docker run <image-name> /etc/*release*
    

    它将返回有关图像的元数据。

    See example output here

        2
  •  5
  •   Rohit Salecha    3 年前

    在docker世界中,你或多或少会遇到像Alpine这样的操作系统。 因此,最明智的做法是获取 /etc/os-release 在大多数情况下都会出现的文件。

    # Tomcat 9 running on Alpine OS
    docker run -it tomcat:9-alpine cat /etc/os-release
    
    # Tomcat 9 running Debian (buster)
    docker run -it tomcat:9 cat /etc/os-release
    

    docker base os

        3
  •  3
  •   user2915097    7 年前

    事实上,你的Jenkins是在Ubuntu 64位、Fedora 24或Debian jessie上构建的,这不应该困扰你,因为它无论如何都应该可以工作。

    看见

    Run Different Linux OS in Docker Container?

    更多解释

    而且

    Docker container isolation, does it care about underlying Linux OS?

    您可以使用docker图像

    https://hub.docker.com/r/dduvnjak/dockerfile-from-image/

    FROM UBUNTU

    FROM DEBIAN

    示例来自

    How to check for Certain Properties in Docker Images

    $ docker run -v /var/run/docker.sock:/var/run/docker.sock dduvnjak/dockerfile-from-image k3ck3c/nethogs | grep FROM

    将显示

    FROM alpine:latest

        5
  •  1
  •   J.M. Janzen    3 年前

    docker run mysql cat /etc/os-release .

    输出

    PRETTY_NAME="Debian GNU/Linux 10 (buster)"
    NAME="Debian GNU/Linux"
    VERSION_ID="10"
    VERSION="10 (buster)"
    VERSION_CODENAME=buster
    ID=debian
    . . .
    
        6
  •  0
  •   Ketan Raje    2 年前

    解决方案:docker运行mysql cat/etc/os版本

    输出:

    PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
    NAME="Debian GNU/Linux"
    VERSION_ID="11"
    VERSION="11 (bullseye)"
    VERSION_CODENAME=bullseye
    ID=debian
    HOME_URL="https://www.debian.org/"
    SUPPORT_URL="https://www.debian.org/support"
    BUG_REPORT_URL="https://bugs.debian.org/"