如何检查docker镜像所依赖的操作系统?

时间:2017-09-05 11:31:16

标签: docker docker-container docker-image

我想扩展我的jenkins图像以安装docker,以便它可以从项目中构建Dockerfile。 我找到了一个很好的docker安装脚本,但仅适用于Ubuntu 64bit。我需要知道的是,如果我的jenkins图像的父图像基于Ubuntu 64bit,那么我可以毫无问题地使用这个安装脚本。

我已经使用了docker image inspect <imagename>但它只会为以前的图像版本产生哈希值。

4 个答案:

答案 0 :(得分:2)

docker run <image-name> /etc/*release*

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

See example output here

答案 1 :(得分:1)

我认为目前没有任何docker命令允许你这样做。似乎唯一的方法是启动容器并运行这些命令:determine OS distribution of a docker image

答案 2 :(得分:1)

你的Jenkins基于Ubuntu 64位或Fedora 24或Debian jessie构建的事实不应该打扰你,因为它应该可以工作。

Run Different Linux OS in Docker Container?

了解更多解释

以及

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

无论如何,如果你想获得用于构建这个图像的Dockerfile的FROM行,

您可以使用泊坞窗图片

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

答案 3 :(得分:0)

在docker世界中,您或多或少会遇到像Alpine这样的操作系统。 因此,最好在大多数情况下获取^ # beginning of line (?: # non capture group adyos # username 1 | # OR user2 # username 2 ) # end group, you can add all your usernames separated by a pipe | $ # end of line \R? # optional linebreak 文件的内容。

/etc/os-release

enter image description here