Tech

Docker 소개 -2

MbyM 2019. 3. 3. 15:59


Docker 소개 -1





Docker란?


도커는 서비스 운영 환경을 묶어서 손쉽게 배포하고 실행하는 경량 컨테이너 기술  



두번 째 포스팅은  간단한 도커 실습을 통해 첫번 째 글 이해를 돕기 위한 글 입니다.


docker image & Container 삭제


 # docker rm -f $(docker ps -aq)

# docker rmi -f $(docker images -aq)



docker image 확인하기


# docker images


docker Container 확인하기(현재 실행 중인 Docker Images 확인)


# docker ps -a





docker image (우분투) 설치


# docker pull ubuntu




이 전 글에서 Docker Images는 Layers로 이루어졌다고 했습니다. ubuntu image 설치 후 Host에서 Layer를 조회해보면 4개의 Layer가 조회되는 것을 확인 할 수 있습니다.


즉 Docker ubuntu Image는 4개의 Layer(Read Only Layer)로 이루어있다고 할 수 있습니다.

(Docker에서는 컨테이너가 실행되면, 실행 또는 복사와 같은 명령을 저장할 수 있는 R/W 계층이 생성되고, 그 하위의 Layer들은 R/O 속성을 지닙니다.)


docker Layer 확인


# docker ls -l -t /var/lib/docker/overlay2





docker Image(ubuntu) 터미널 모드로 실행 (test)


# docker run -it --name test ubuntu



위 화면을 보면  Docker Image(ubuntu) 를 실행하고, 독립적인 자신만의 ubuntu공간 터미널로 진입하는 것을 볼 수 있다. 


즉 컨테이너를 빠져나와 다시 한번 실행 중인 이미지(Docker Container) 와 Docker Layer를 확인 해 봅시다.


# docker ps

# docker ls -l -t /var/lib/docker/overlay2




위 화면을 보면  ubuntu 이미지가 실행 중 이며,  신규로 R/W 계층 Layer가 추가로 생성된 것을 볼 수 있습니다. 이 Layer는 사용자가 실행 또는 변경된 내용을 기록하게 됩니다.


이렇게 함으로써 하나의 이미지로부터 여러개의 서로 다른 Container 프로세스를 실행할 수 있습니다. 원본 이미지의 수정없이 Container마다 생성된 R/W레이어를 수정함으로써 컨테이너마다 다른정보를 저장할 수 있는 것입니다.


또한, 같은 이미지를 여러개의 Container로 실행하게 되면 읽기만 가능한 Layer들은 컨테이너를 여러개 실행해도 아래 그림과 같이 공유해서 사용할 수 있기 때문입니다.


동일한 docker Image(ubuntu) 터미널 모드로 실행 (test2)


# docker run -it --name test2 ubuntu

# docker ps

# docker ls -l -t /var/lib/docker/overlay2




이미지 Layer의 1개 증가했음을 알 수 있습니다. 이 Layer역시 위에서 보았던 R/W Layer이고, 읽기만 가능한 Layer들은 컨테이너를 여러개 실행해도 공유해서 사용한다는 것을 알 수 있습니다.




정리



Docker Images는 Layer 이루어져 있으며, 컨테이너 구동을 위한 Read Only Layer는 컨테이너들이 공유하며 자신의 독립적인 정보를 저장하는 Read Write Layer로 이루어져 있습니다.