기본 이미지에는 다음이 포함됩니다. 1. 애플리케이션 이미지(nginx, redis, mongo, mysql, httpd, php, tomcat 등) 2. 프로그래밍 언어 이미지(node, oraclejdk, openjdk, python, golang 등) . 빈 이미지 "스크래치".
이 튜토리얼의 운영 환경: linux5.9.8 시스템, docker-1.13.1 버전, Dell G3 컴퓨터.
우리는 주로 이미지를 기본으로 사용하고 이를 커스터마이징하는데, 이것이 바로 기본 이미지입니다.
nginx
이미지 컨테이너를 실행한 다음 수정하는 것과 같습니다. 기본 이미지는 DockerFile에 지정되어야 합니다(FROM은 기본 이미지를 지정하는 것이므로 FROM은 Dockerfile에서 필수 명령어이며 첫 번째 명령어여야 합니다)nginx
镜像的容器,再进行修改一样。在DockerFile中基础镜像是必须指定的 (FROM 就是指定 基础镜像,因此一个 Dockerfile 中 FROM 是必备的指令,并且必须是第一条指令)
比如构建一个Java应用的镜像,选择一个Oracle JDK的镜像作为基础镜像比选择一个alpine镜像作为基础镜像更方便。
在 Docker Hub 上有非常多的高质量的官方镜像,可以在其中寻找一个最符合我们最终目标的镜像为基础镜像进行定制。
有应用镜像,如 nginx
、redis
、mongo
、mysql
、httpd
、php
、tomcat
等;
有方便开发、构建、运行各种语言应用的编程语言镜像,如 node
、oraclejdk
,openjdk
、python
、ruby
、golang
等。
还有更为基础的操作系统镜像,如 ubuntu
、debian
、centos
、fedora
、alpine
等,这些操作系统的软件库为我们提供了更广阔的扩展空间。
除了选择现有镜像为基础镜像外,Docker 还存在一个特殊的镜像,名为 scratch
。这个镜像是虚拟的概念,并不实际存在,它表示一个空白的镜像。
如果你在DockerFIle中以 scratch
为基础镜像的话(FROM scratch
),意味着你不以任何镜像为基础,接下来所写的指令将作为镜像第一层开始存在。不以任何系统为基础,直接将可执行文件复制进镜像的做法并不罕见,比如 swarm
、coreos/etcd
。对于 Linux 下静态编译的程序来说,并不需要有操作系统提供运行时支持,所需的一切库都已经在可执行文件里了,因此直接 FROM scratch
예를 들어 Java 애플리케이션 이미지를 빌드하려면 Oracle JDK 미러링을 선택하세요. 기본 이미지로 사용하는 것이 알파인 이미지를 기본 이미지로 선택하는 것보다 더 편리합니다.
Docker Hub에는 고품질 공식 이미지가 많이 있습니다. 그 중에서 가장 좋은 이미지를 찾을 수 있습니다. 최종 목표에 맞는 이미지를 기본 이미지로 맞춤화합니다.
🎜nginx
, redis
, mongo
, mysql과 같은 <strong>애플리케이션 미러</strong>가 있습니다. code> , <code>httpd
, php
, tomcat
등 🎜🎜개발에 편리한 프로그래밍 언어 이미지node, oraclejdk
, openjdk
, python
등 다양한 언어로 애플리케이션을 구축하고 실행합니다. , ruby
, golang
등 🎜🎜ubuntu
, debian
, centos
, 와 같은 보다 기본적인 <strong>운영 체제 이미지</strong>도 있습니다. fedora
, alpine
등 이러한 운영 체제의 소프트웨어 라이브러리는 더 넓은 확장 공간을 제공합니다. 🎜🎜기존 이미지를 기본 이미지로 선택하는 것 외에도 Docker에는 scratch
라는 특수 이미지도 있습니다. 이 이미지는 가상의 개념이며 실제로 존재하지 않는 공백 이미지를 나타냅니다. 🎜🎜DockerFIle에서 scratch
를 기본 이미지로 사용하는 경우(FROM 스크래치
) 이는 어떤 이미지도 기반으로 하지 않으며 다음에 작성되는 지침은 다음과 같습니다. 이미지의 첫 번째 레이어가 존재하기 시작합니다. swarm
, coreos/etcd
와 같은 시스템을 기반으로 하지 않고 실행 파일을 이미지에 직접 복사하는 것은 드문 일이 아닙니다. Linux에서 정적으로 컴파일된 프로그램의 경우 운영 체제에서 런타임 지원을 제공할 필요가 없습니다. 필요한 모든 라이브러리가 이미 실행 파일에 있으므로 FROM 스크래치
로 인해 이미지 크기가 더 커집니다. 콤팩트. 🎜Go 언어를 사용하여 개발된 많은 애플리케이션은 이 방법을 사용하여 이미지를 생성합니다🎜. 이는 일부 사람들이 Go가 컨테이너 마이크로서비스 아키텍처에 특히 적합한 언어라고 생각하는 이유 중 하나입니다. 🎜🎜추천 학습: "🎜docker 비디오 튜토리얼🎜"🎜위 내용은 Docker 기본 이미지는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!