【发布时间】:2017-03-07 11:20:28
【问题描述】:
我是 docker 新手,知道 linux 内核在主机操作系统和容器之间共享。但我真的不明白 docker 模拟特定 linux 发行版的深度。假设我们有一个像这样的简单 docker 文件:
FROM ubuntu:16.10
RUN apt-get install nginx
它会给我一个安装在 Ubuntu 16.10 环境中的 nginx 的 docker 容器。所以我应该能够使用 apt-get 作为 Ubuntu 的默认包管理器。但这有多深?我可以假设像lsb_release 这样的发行版的典型命令像在安装了 Ubuntu 16.10 的完整 VM 中一样被模拟吗?
我的问题背后的原因是 linux 发行版不同。我需要知道哪些命令可用,例如,当我在安装了不同发行版(如 Red Hat、CentOS 等)的主机上运行带有 Ubuntu 16.10 的容器(如上述容器)时。
Docker 中的 Ubuntu 映像大约为 150 MB。所以我认为没有像实际安装中那样包含所有工具。但是我怎么知道我可以放弃他们在那里。
【问题讨论】:
-
尝试用
docker run --name myubuntu sleep infinity启动一个,然后docker exec -it myubuntu lsb_release,如果你得到一个Ubuntu版本,这意味着它可以工作
标签: linux ubuntu docker dockerfile