开发者社区> biocodee> 正文

构建Docker images 是否需要 OS 作为 base image ?

简介: dockfile ; scratch;
+关注继续查看

不需要

  1. 使用 dockfile 创建 docker images 的时候,需要从 base docker image 开始. 主机上的容器(container) 共享主机内核(kernel), 但是每个容器必须提供其自身运行需要的操作系统(OS)。 在 windows系统中, 1 : 1 mapping of kernel : OS ; 但是在 Linux 系统当中, kernel 包括多种类型 OSs : Debian, Ubuntu, Alpine, SuSE, CoreOS 等
  2. 语句FROM 通常指定操作系统类型,但是不需要或者没有必要将操作系统 bundle进一个容器。容器应该仅包括它所需要的。 FROM 提供初始的文件系统,例如,文件、目录等。 同样可以可以使用 Docker 保留的最小的镜像scratch 作为容器构建的起点。使用 镜像scratch将传递给创建过程如下信息: Dockerfile 文件中下一个命令将作为镜像第一个文件系统层。尽管scratch 出现在 Docker repository 当中,但是你不能 pull 或者 run 这个镜像, 也不能用scratch来命名任何镜像。你可以在 Dockfile 当中refer它。使用 FROM scratch ,从一个空的 images 开始构建。
    镜像scratch 在创建 base images(比如 debian 和 busybox) 的时候非常重要,或者 super minimal images (仅包含 a single binary 和其他它需要的) .
    使用 scratch 创建一个简易容器 :
FROM scratch
COPY hello /
CMD ["/hello"]
  1. 镜像NGINX 使用 Debian 操作系统:
FROM debian:buster-slim

LABEL maintainer="NGINX Docker Maintainers <docker-maint@nginx.com>"

ENV NGINX_VERSION   1.17.6
ENV NJS_VERSION     0.3.7
ENV PKG_RELEASE     1~buster

RUN set -x \
# create nginx user/group first, to be consistent throughout docker variants
    && addgroup --system --gid 101 nginx \
    && adduser --system --disabled-login --ingroup nginx --no-create-home --home /nonexistent --gecos "nginx user" --shell /bin/false --uid 101 nginx \
    && apt-get update \
    && apt-get install --no-install-recommends --no-install-suggests -y gnupg1 ca-certificates \
    && \
    NGINX_GPGKEY=573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62; \

reference :
[1] scratch. website
[2] does docker always need an operating system as base image.Stack Overflow
[3] Create a simple parent image using scratch. website

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Docker 镜像(image)& 容器(container)
什么是 Docker 镜像(image)? 镜像由多个层组成,每层叠加之后,从外部看来就如一个独立的对象; 镜像内部是一个精简的操作系统(OS),同时还包含应用运行所必须的文件和依赖包; 镜像可以运行一个或多个容器,同时镜像也可以停止某个容器的运行,并从中创建新的镜像;【镜像(iamge)的分类】...
92 0
From Docker to Kubernetes(一)- Image And Container
From Docker to Kubernetes(一)- Image And Container
43 0
IDEA的Docker插件实战(Docker Image篇)
IDEA的Docker插件实战(Docker Image篇)
227 0
【云原生 | Docker篇】Docker镜像(image)与服务
【云原生 | Docker篇】Docker镜像(image)与服务
192 0
利用分层机制优化Docker Image
利用分层机制优化Docker Image
68 0
Docker - Image 快速入门
Docker - Image 快速入门
26 0
Docker(7)- docker images 命令详解
Docker(7)- docker images 命令详解
71 0
删除docker images的正确姿势
删除docker images的正确姿势
142 0
群晖+DOCKER,一个更好的DEVOPS+WEBOS云平台及综合云OS选型
本文关键字:dualrunning os bootloader设想,dockerized os subsystem appmodel,云devops学编程
548 0
Docker-images
docker images 是列出镜像的操作,来看一下这个命令的用法 docker images --help [qidai@qidai-pc ~]$ docker images --help Usage: docker images [OPTIONS] [REPOSITORY[:TAG]...
1737 0
+关注
biocodee
bio2coder
文章
问答
文章排行榜
最热
最新
相关电子书
更多
5日docker训练营(四).ppt
立即下载
5日docker训练营(三).ppt
立即下载
4天实战 轻松玩转docker
立即下载