클라우드/도커

[도커] 도커 3: docker 명령어 모음 2탄 (도커 이미지 관련 명령어)

KyuminKim 2024. 11. 13. 20:19

지난 시간에 이어,

유용한 docker 명령어를 알아보자


도커 컨테이너 이미지 다운로드

$ docker pull centos:latest                            # 이미지이름:버전 
$ docker pull registry.hub.docker.com/ubuntu:latest    # url(http://제거)로 pull

도커 허브에서 컨테이너 이미지를 로컬에 다운로드 한다.

(다른 컨테이너 저장소에서도 다운로드 가능하다)


도커 컨테이너 이미지 조회

$ docker images            # 현재 컴퓨터에 존재하는 이미지 확인
$ docker image ls          # 현재 컴퓨터에 존재하는 이미지 확인

로컬에 존재하는 이미지 확인 가능

 

$ docker search 이미지명/id        # docker hub에 등록된 이미지 확인 (이름, 설명,stars등 확인 가능)

도커 허브에 존재하는 이미지 조회 가능


도커 컨테이너 이미지 삭제

$ docker rmi myImage:1.0            # docker image 삭제
$ docker image prune                # 사용하지 않는 이미지만 삭제
로컬에서 해당 이미지 삭제 가능하다!

도커 컨테이너 이미지 생성

- base image로부터 컨테이너 생성 이후, 컨테이너에서 작업한 내용은 container layer로 쌓인다
- 이때, 실행중인 컨테이너를 도커 이미지로 생성 가능하다 (base image + container image)

 

$ docker commit my_running_container                          # 실행 중인 컨테이너를 이미지로 생성
$ docker commit -a “lemon” my_running_container               # 작성자 기입하여 컨테이너를 이미지로 생성 
$ docker commit -m “my first commit” my_running_container     # 주석을 기입하여 컨테이너를 이미지로 생성
- docker commit 시 이전의 내용이 모두 한 layer로 생성된다!!
 
$ docker run -it --name test_custom_image ubuntu
# echo “test_1” >> test_first.txt                   # (컨테이너 실행) custom layer에 추가
# echo “test_2” >> /home/test_second.txt            # (컨테이너 실행) custom layer에 추가
# exit                                              # (컨테이너 실행) 

$ docker commit -m "first commit" test_custom_image my_image:first

 

도커 레지스트리에서 가져온 base image (=ubuntu)에,

파일을 쓰는 등 custim layer를 추가한다.

 

이때, my_image에는

(ubuntu base 이미지) + (파일을 쓴 작업내역)가 모두 올라가는 것이다!


도커 컨테이너 이미지 내역 확인

$ docker image history my_image:first       # 도커 이미지 내역 확인

이미지를 하나 만들어주자

 

history로 확인했을 때, <MISSING> 부분이 있다.

이 에러는 호스트 컴퓨터에 해당 이미지가 존재하지 않아 발생하는 에러이다!

 

이번 경우는, base image의 history를 나타낸 것으로 

docker build를 통해 base image Dockerfile을 직접 빌드하면 <missing>이 사라진다!

(Dockerfile은 다음에 알아보자!)


도커 이미지 상세 내용 확인

$ docker image inspect my_image:first # 상세내용 확인

도커 이미지는 base image와 container layer로 구성된다고 했다.

이때, 도커 이미지가 어떤 layer로 구성되는지 확인하고 싶을 때 사용할 수 있다

명령어를 사용하면 LowerDir, Upper Dir를 확인할 수 있다.

 

 

이때, 

사용자가 새로 작업한 영역인 UpdderDir를 확인해볼까?

$ sudo ls /var/lib/docker/overlay2/b1760ff43dab87a7d2c96fe97cf20a848c731667327de561eee20132ffb42ea0/diff
$ sudo cat /var/lib/docker/overlay2/b1760ff43dab87a7d2c96fe97cf20a848c731667327de561eee20132ffb42ea0/diff/test_first

호스트 컴퓨터에서 

다음과 같이 명령어를 실행하면,

어떤 파일이 새로 생성이 되었는지 컨테이너 변경 내역을 확인할 수 있다.


다음 시간에는 도커 파일 관련해서 알아보자!