본문 바로가기
docker

[docker] 도커 라이프 사이클, 이미지, 이미지 파일 시스템, 레이어

by 쟈크손 2023. 4. 28.

도커 라이프 사이클

도커 라이프 사이클 그림

 

도커 이미지 다운로드와 삭제

docker pull 이미지 이름: 이미지 다운로드 

docker rmi 이미지 이름: 이미지 삭제

 

컨테이너 생성 후 실행

docker run -d --name tc 

-d: 백그라운드

--name tc: 컨테이너 이름 지정

 

컨테이너 실행 

docker start 컨테이너 이름

docker restart 컨테이너 이름: 재실행

 

실행중인 컨테이너 확인

docker ps

 

모든 컨테이너 확인(중지된 컨테이너까지)

docker ps -a

 

컨테이너 중지

docker stop (컨테이너id or 컨테이너 이름)

 

컨테이너 삭제

docker rm (컨테이너id or 컨테이너 이름)

실행중인 컨테이너는 삭제 불가능(stop으로 정지시킨 다음 삭제해야 한다.)

실행중이지 않은 컨테이너는 바로 삭제 가능

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

실행 예제(nginx)

docker pull nginx :nginx라는 이미지 다운로드

docker create -p 80:80 --name nx nginx :nginx 컨테이너 생성

-p 80:80: 포트

--name nx: 이름

 

docker start -d (만든 nginx 컨테이너 id)

 

127.0.0.1:80 접속해서 확인

 

docker run -d -p 80:80 --name nx nginx: 이 명령어로도 똑같은 결과가 나옴

다시 처음부터 만들때는 컨테이너 이름포트 번호를 다르게 해야하거나 컨테이너를 삭제하고 다시 만들어야 한다.

(포트 번호가 같은 경우 컨테이너는 생성되지만 실행이 안될 수 있다.)

 

 

이미지, 이미지 파일 시스템, 레이어

 docker inspect 이미지 이름: 이미지에 대한 정보 확인 가능

id는 sha256이란 알고리즘으로 겹치지않게 만들어줌

nginx라는 태그가 있고 버전명을 적지 않으면 latest로 자동으로 저장

ExposedPorts는 할당한 포트

Env는 환경 변수

 

Cmd는 컨테이너로 실행했을 때 어떻게 실행해야 하는지 알려줌

 

RootFs:파일 시스템을 구성해주는 부분(사진에서는 3개의 레이어가 보임)

 

 

docker info: 도커가 설치되어있는 부분 확인가능

docker info 결과
레이어를 저장하고 있는 디렉토리

docker에 image가 들어있고 그 안에는 imagedb와 layerdb가 들어있다.

imagedb에 대한 정보가 layerdb에 들어있고 layerdb에 대한 정보는 overlay2라는 곳에 저장되어 있다.

overlay2에는 변경사항이 저장되어있는데 변경사항들에 대한 정보는 overlay2/l 에 들어있다.

 

이 정보들을 활용해 container를 만든다.( run이나 create명령어 사용시)

 

 

 

 

댓글