이 글은 [2024 NEW] 개발자를 위한 쉬운 도커 강의를 듣고 작성한 글입니다! 모든 이미지 출처는 해당 강사님께 있습니다.
이미지를 컨테이너로 실행하고, 이미지와 컨테이너의 차이를 알아보자.
이미지란?
이미지는 특정 서버를 실행할 수 있는 상태를 저장한 압축 파일이다.
프로그램과 프로세스의 차이
프로그램은 실행 가능한 소프트웨어이다. 프로그램을 설치하면 디스크를 차지한다. 프로그램인 상태에서는 CPU나 메모리 같은 컴퓨터의 리소스를 사용하지 않고, 스토리지의 디스크 공간만 차지한다. 파일 형태의 프로그램을 실행하면 프로세스가 된다. 프로그램은 여러 개의 프로세스를 실행할 수 있다. 프로세스는 CPU와 메모리를 사용한다.
이미지와 컨테이너
이미지와 컨테이너의 관계가 프로그램과 프로세스의 관계와 비슷하다고 생각하면 된다. 이미지는 프로그램이 실행되기 위한 환경이 모두 포함된 파일 시스템이고, 이미지를 실행한 것이 컨테이너이다. 컨테이너를 실행시키려면 이미지가 필요하고, 이미지는 호스트 머신의 특정 경로에 위치한다. 하나의 이미지로 여러 개의 컨테이너를 실행할 수 있다. 이미지인 상태에서는 디스크만 차지하고, 컨테이너가 되면 CPU와 메모리를 차지한다. 프로세스와 차이가 있다면 컨테이너는 가상화 기술이기 때문에 이미지를 컨테이너로 실행하게 되면 격리된 공간이 만들어 진다는 것이다. 격리된 공간에서 사전에 지정된 프로그램이 프로세스로 실행된다.
실습
docker image ls : 로컬 디스크에 있는 이미지를 조회
docker image ls : (이미지명) : 특정 이미지 조회
아래 명령어로 이미지를 컨테이너로 실행시킬 수 있다.
docker run -d --name {컨테이너명} 이미지명
-d 는 백그라운드 실행, --name {컨테이너명} 은 컨테이너의 이름을 지정하는 것이다.
컨테이너 명은 시스템 내에서 중복될 수 없다.
docker ps : 실행중인 컨테이너 리스트 조회
docker rm -f 컨테이너명 : 실행중인 컨테이너를 삭제, 띄어쓰기로 컨테이너를 구분하여 여러 개 삭제 가능
아래는 nginx 이미지를 multinginx1, multinginx2, multinginx3 이라는 이름의 컨테이너로 백그라운드로 실행시키고, 실행중인 컨테이너를 삭제한 예제이다.
'Docker' 카테고리의 다른 글
이미지 레지스트리 (0) | 2024.02.19 |
---|---|
컨테이너의 라이프사이클 (0) | 2024.02.17 |
이미지의 메타데이터(Metadata) (1) | 2024.02.17 |
컨테이너 실행 (0) | 2024.02.15 |
Docker란? (0) | 2024.02.14 |