728x90
1. 이미지란?
이미지는 템플릿, 컨테이너의 청사진이다.
이미지는 실제로 코드와 코드를 실행하는데 필요한 도구를 포함한다.
그 다음 컨테이너가 실행되어 코드를 실행한다.
이미지를 기반으로 여러 컨테이너를 만들수 있다.
예를 들어 NodeJS 웹 서버 애플리케이션의 경우
한번만 정의하면 다른 시스템과 다른 서버에서 여러번 실행할 수 있다.
컨테이너는 그러한 이미지의 구체적인 실행 인스턴스이다.
즉, 이미지는 블루프린트이고 템플릿은 코드와 애플리케이션을 포함하며 컨테이너는 실행 애플리케이션이 된다.
2. 컨테이너 생성
로컬에 노드 이미지가 없다면 도커허브에서 자동으로 다운받는다.
docker run node
기본적으로 컨테이너는 주변 환경과 격리되어 있으며 컨테이너 내부에서 실행중인 인터렉티브 쉘이 있다고 해서
이 쉘이 사용자인 우리에게 노출된다는 의미는 아니다.
3. 프로세스 표시
모든 프로세스표시
docker ps -a
해당 이미지의 내용을 확인할 수 있다.
도커에게 컨테이너 내부에서 호스팅 머신으로 대화형 세션을 노출하고 싶다고 알리기
docker run -it node
이러면 노드 콘솔창을 띄울수 있다.
다시 프로세스를 표시해보면
docker ps -a
동일한 이미지를 기반으로 하는 컨테이너가 2개 나온다.
두 컨테이너는 동일한 이미지를 기반으로 한다.
더이상 실행되지 않지만 동일한 이미지를 기반으로 하는 2개의 컨테이너가 동시에 실행될수 있음을 알수 있다.
결국 이미지에는 코드, 설정, 여러것들이 포함되며 컨테이너는 그 이미지의 실행 인스턴스이다.
4. 도커 아키텍처
728x90
'개발 > Docker' 카테고리의 다른 글
[Docker] 도커 마운트 경로 오류 (0) | 2022.12.14 |
---|---|
[Docker] DockerHub 사용하기 (0) | 2022.12.13 |
[Docker] Docker 명령어 (0) | 2022.12.13 |
[Docker] Dockerfile (0) | 2022.12.13 |
[Docker] 도커의 개념 (0) | 2022.12.13 |