docker镜像可以选择操作系统吗?

Sha*_*mar 8 docker dockerfile docker-swarm

Docker 镜像可以指定它可以使用哪个操作系统吗?比如说一个使用 Windows 的映像,另一个使用 RHEL 的映像?这种情况下Docker将如何维护两个不同的操作系统呢?

mir*_*ana 6

Docker 由层组成。在任何 Dockerfile 的开头,您可以通过键入例如来指定操作系统。FROM python:3我的信念是,如果您要添加另一个操作系统。该映像将保留第一个操作系统的环境,并在其上安装第二个操作系统的环境。因此本质上,您的图像将具有这两种环境。

如果您从上面的命令创建一个 python 映像并命名它,docker build -t 'this_python' .然后使用第一行创建一个新的 Dockerfile:FROM this_python这样新映像已经包含 python,您可以在此基础上安装任何内容。

最佳实践是使 Docker 镜像尽可能小。仅安装所需的内容。

一个简单的例子

FROM python:3
FROM ubuntu:latest

RUN apt-get update
Run Code Online (Sandbox Code Playgroud)

上面的 Dockerfile 为您提供了安装了 Python 和 Ubuntu 的映像。但这不是你应该做的。更好的方法是使用FROM ubuntu:latestpython,然后在其上安装。