Docker가 무엇인지, 왜 사용하는지에 대한 지난 글에 이어서
이번에는 Docker의 핵심개념인 container와 Image가 무엇인지에 대해 알아보고자 한다.
Image와 Container의 관계
가장 먼저, Docker Image와 Container간의 관게에 대해 얘기해보자.
우선, Docker의 가장 기본적인 Process는 아래 사진과 같다.
어렵게 생각하지말고,
Image는 Container를 만들기 위한 템플릿, 혹은 사진 이라고 생각하자.
그리고 Container는 Image를 이용해 독립된 환경에서 실행하는 Application정도로 생각하자.
즉, Dockerfile 이란 것을 통해, Docker Image를 만들고(build), 이 이미지를 이용하여 Container를 실행(run)시킨다.
Dockerfile이란 것이 무엇인지, 어떻게 작성하는지에 대해서는 다음 글에서 자세히 알아보도록 하고,
여기에서는 Docker image와 Container에 집중해보자.
Docker Image && Container
공식 홈페이지에 따르면, Image는 Docker container를 생성하기 위한 절차가 적혀져 있는 템플릿 이다.
여기에서 가장 중요한 점은,
Docker Image는 application을 실행(container)시키는 것에 필요한 모든 것들을 가지고 있다는 것이다.
그럼, container를 실행시키기 위해 어떤 것들이 필요할까?
1. Container가 띄워졌을 때 실행할 명령어(command)
2. Application의 스냅샷(application 코드)
그리고 이미지는 이러한 것들을 가지고 있다가, Container를 구동 시킬 때
Application을 설치하기 위한 Code File을 Container 내부의 하드디스크에 복사하고, command를 실행 시켜 해당 Application을 실행시키게 된다.
위 사진은 docker ps 라는 명령어를 통해 현재 구동중인 container를 확인한 모습이다.
사진을 보면, 사용한 image(docker-react_react), 컨테이너 구동시 사용한 COMMAND("/docker-entrypoint...")등의 정보를 볼 수있다. 그리고 이러한 정보들은 앞서 말한 것 처럼, 모두 Image에서 받아 오는 것이다.
지금까지 Image와 Container가 무엇인지 그리고 그 관계에 대해서 대략적으로 알아봤다.
다음 포스트에서는 실제로 Dockerfile을 어떻게 작성하고, 어떻게 Image를 만들 수 있는지 알아보고자 한다.
'Docker' 카테고리의 다른 글
[Docker] Docker 설치하기 (특정 버전 docker 설치) (1) | 2022.10.07 |
---|---|
[Docker - 3] Dockerfile 작성법 (with example) (1) | 2022.09.24 |
[Docker - 1] Docker란, Docker 사용이유 (Docker vs VM) (0) | 2022.09.24 |
[solved]Cannot create container for service frontend: failed to copy files: failed to open target ... no space left on device (0) | 2022.08.26 |
Docker Container TimeZone 설정 (0) | 2022.08.02 |