2017-10-12 3 views
1

나는 Docker를 배우려고 노력 중이며 온라인 자료를 언급하고있다. 나는 우리가 끌어 당길 수있는 컨테이너의 공식적인 허브가 있음을 알게되었습니다.모든 도커 이미지에 최소 OS가 있습니까?

REPOS은 https://hub.docker.com/에서 스크린 샷의 일부를 사용할 수 있습니다

enter image description here

이 그림에서 우리는 우분투, 아파치, MySQL을 (등)의 공식 이미지를 볼 수 있습니다.

내 질문은 :

이 모든 이미지들이 실행하는 "최소한의 OS"를해야합니까. 예를 들어, httpd 이미지를 고려해 보면 이미지가 실행되는 데 필요한 OS가 있습니까?

+0

공식 Docker 문서를 살펴보아야합니다. https://docs.docker.com/get-started/ –

+0

차례로 라이브러리 등이 필요한 프로그램이 필요합니다.이것들은 docker 이미지의 파일로서 필요에 따라 호출됩니다. Docker는 그들이 말하는 커널을 제공합니다. Java Docker 시스템의 경우 JVM과 필요한 라이브러리 외에는 아무 것도 얻을 수 없습니다. –

+0

OS가없는 이미지를 가질 수 있다는 것을 의미합니까? – CuriousMind

답변

2

대부분의 이미지는 Dockerfiles에서 볼 수있는 것처럼 배포판을 기반으로합니다. 배포 이미지 자체는 제외. 그것들은 scratch라고하는 다른 기본 이미지를 가지고 있습니다.

당신은 예를 들어, 그들은 당신이 DockerHub에 프로젝트의 페이지를 방문 할 때 기반으로하는 이미지를 검토 할 수 있습니다 https://hub.docker.com/_/httpd/

그들의 Dockerfiles가 참조되고 당신은 그들을 클릭, 예를 들어,에 의해 검토 할 수 첫 번째 태그 "2.2"는 this file을 나타냅니다. Dockerfile의 첫 번째 행은 FROM debian:jessie이며 데비안 이미지를 기반으로합니다.

데비안 이미지보다 훨씬 작은 기본 이미지 인 alpine linux이 사용되었음을 나타 내기 위해 접두어 -alpine으로 구분 된 태그를 사용하는 데 널리 사용됩니다. 이렇게하면 기본 이미지가 훨씬 작기 때문에 httpd 이미지의 이미지가 더 작아집니다.

1

전체적인 생각은 전체 이미지가 하드웨어/가상화 계층에서 완전히 독립 실행 형이라는 것입니다. 그리고 따라서 (프로 :) 또한 이미지의 일부인 것 이외의 다른 것에 의해 영향을받을 수 없습니다.

모든 이미지에는 완전한 os가 포함되어 있습니다. 특별한 docker는 몇 메가 바이트의 OS를 가지고 있습니다 : 예를 들어, 8 메가 바이트의 OS 인 linux Alpine!

그러나 우분투/창과 같은 더 큰 OS는 몇 기가 바이트가 될 수 있습니다. docker는 이미지를 레이어로 자르므로 두 가지 장점이 있습니다. 따라서 base 이미지를 두 번 사용할 경우 (FROM 명령, N20 Answers 참조)이 레이어를 한 번만 다운로드합니다.

작은 OS는 몇 메가 바이트 만 다운로드하면됩니다. 하지만 사용하고자하는 모든 (리눅스) 라이브러리에 대해 &을 다운로드해야합니다. 이 맞춤 제작 레이어는 나만의 이미지에서만 사용되므로 다른 이미지에서 다시 사용되지 않으므로 고객 추가 다운로드 레이어가 생성됩니다. & 메가 바이트의 사람들이 이미지를 실행하려면 다운로드해야합니다.

당신은 당신이 당신의 dockerfile을 시작할 수 있습니다 아무것도에서 이미지를 확인하려면 :

FROM scratch 

하지만 당신이 정말로 당신이하고있는 및/또는 당신이 주변에 hobbying있는 것을 알지 못한다면이, 권고하지 않습니다.

+0

답변 해 주셔서 감사합니다. 그렇다면 필연적으로 이미지에 필연적으로 최소한의 OS가 있다는 것은 언제나 그렇습니까? 나는 아직도 명확하지 않다. ( – CuriousMind

+1

Bitnami의 php-fpm : 7.2.1-r0 이미지는 15 층에 253MB이다. kreable/php70 : 최신은 1.21GB이고 45 층이다. 기본 이미지가 동일하고 실제 레이어가 적용되며 종속성을 설치할 때 자신을 정리하는 방법은 최종 이미지 크기에 영향을 미칩니다. 재사용 성 (그러나 더 큰 레이어)과 미니멀리즘 사이의 균형입니다 (그러나 아마 추가 노력을 보증 할만큼 충분히 재사용 할 수 없다). –