본문 바로가기

개발 일기라기 보단 메모장/Docker

05. 도커(docker) 이미지로 컨테이너 만들기

반응형

1. Docker 이미지의 구조

이미지는 프로그램을 실행하는데 필요한 모든 것을 담고 있다.
컨테이너가 시작할때 필요한 명령어 + 파일 스냅샷이 필요하다.

 

 

* 파일 스냅샷 : 디렉토리나 파일을 카피한것.

 

 

2. Docker 이미지로 컨테이너를 만드는 순서

  1. Client에서 "docker run youtube"을 실행한다.
  2. 명령어를 docker server로 전송한다.
  3. 먼저 이미지 cache 저장소에 있는지 체크하여, 미리 사용했던 이미지가 있으면 cache에 있는 이미지를 사용하고 없으면 Docker Hub에서 검색하여 가져온다.
  4. 가져온 이미지를 가지고 컨테너를 만들게 되는데, 프로그램을 실행하는 명령어를 컨테이너에 넣어주고 파일 스냅샷은 컨테이너에 할당된 하드디스크에 적재해준다.
  5. 컨테이너를 실행하게 되면 이미지로부터 가져왔던 명령어가 실행된다.

 

3. 도커 이미지 파일 구조

(1) 도커 이미지파일 구조를 보기 위한 명령어 예시.

docker run alpine ls
  • docker : 도커를 사용하기 위해 도커 클라이언트 언급
  • run : 컨테이너 생성 및 실행
  • alpine : 컨테이너 실행을 위한 이미지 파일
  • ls : 여기에선 파일리스트를 보는 ls명령어를 예시로 들었을 뿐이다.

** 도커의 네번째 자리 옵션은 이미지 시작 명령어를 무시하고 네번째 자리의 커맨드를 실행하도록 하는 옵션이다.

 

(2) 예시

A) ls 명령어가 잘 작동한 경우

 

B) ls 명령어가 작동하지 않은 경우

 

A는 이미지파일 안에 ls 명령어를 사용할 수 있는 파일들이 들어있어서 실행 가능하고,

B는 워낙 간단한 이미지 파일이라 실행 가능한 파일이 없어서 에러가 난다.

 

4.  Docker 컨테이너 리스트 확인

(1) 실행중인 도커 컨테이너 확인

docker ps
  • ps : process status 

 

(2) 모든 도커 컨테이너 확인

docker ps -a

 

(3) 도커 컨테이너 리스트 확인

 

  • CONTAINER ID : 컨테이너 고유 아이디, 해쉬값. 원래는 길지만 일부만 표시됨.
  • IMAGE : 컨테이너 생성시 사용한 도커 이미지.
  • COMMAND : 컨테이너 시작시 실행될 명령어. (위 예시에서는 임의로 커맨드를 입력함)
    대부분 이미지 안에 내장되어 있기 때문에 따로 설명 필요 없음.
  • CREATED : 컨테이너 생성 시간
  • STATUS : 컨테이너의 상태. (Up = 실행중 / Exited = 종료 / Pause = 일시정지 )
  • PORTS : 컨테이너가 오픈한 포트와 호스트에 연결한 포트. 별도 설정 필요.
  • NAMES : 컨테이너 고유한 이름.
    컨테이너 생성시 --name 옵션으로 지정 가능.

 

 

반응형