본문 바로가기

DevOps/Docker

[Docker] Docker 이미지 조작

이미지 다운로드

  • 기존의 이미지를 pulling 할 때는 태그를 입력하지 않았다.
  • default 값이 latest이기 때문이다. 
  • 아래와 같이 했었다
docker image pull hello-world
docker image pull ubuntu
docker image pull nginx

 

  • 이후 이미지 목록을 확인해보자
docker image ls

 

  • 태그를 입력하지 않음에도 불구하고 모두 latest로 기입되어있다.
  • 그러나 태그를 입력해서 이미지를 가져오면 어떻게 될까?
docker image pull centos:7

 

 

  • 태그 부분에 7이 적혀있음을 볼 수 있다.

이미지 목록 표시 옵션 (docker image ls)

옵션 설명
--all, -a 모든 이미지를 표시
--digests 다이제스트를 표시할지 말지 결정
--no-trunc 결과를 모두 표시
--quiet, -q Docker 이미지 ID만 표시
  • all 옵션 ( -a)
docker image ls -a
docker image ls --all

 

  • digests 옵션
docker image ls --digests

 

# digests를 표시한다.

 

  • --no-trunc 옵션
docker image ls --no-trunc

 

# 이미지 ID를 온전하게 표시해준다.

 

  • --quiet 옵션 (-q)
docker image ls --quiet
docker image ls -q

 


이미지 상세 정보 확인 (docker image inspect)

  • 기본구조
docker image inspect <이미지명:태그>

 

docker image inspect hello-world:latest

 

# JSON형식으로 출력이 됨을 볼 수 있다.


이미지 태그 설정 (docker image tag)

  • 태그 사용법을 알아보자
docker help tag

 

# docker tag <소스이미지:태그> <타겟이미지:태그> 형식이다.

 

  • 우분투 이미지 파일을 abcde:fghi 태그를 붙인다.
docker tag ubuntu:latest abcde:fghi

 

# 우분투와 abcde가 image id를 포함해 용량, 생성날짜 등이 모두 같다. 쉽게 말해 하드링크가 되었다고 생각하면 된다.


도커 허브에 이미지 파일 넣어보기

  • 우분투와 centos 태그를 생성해보자
docker tag ubuntu:latest holywat2r/test:ubuntu
docker tag centos:7 holywat2r/test:centos

 

  • 이후 push를 통해 생성한 이미지를 본인 계정에 넣어보자
docker image push holywat2r/test:ubuntu

# 권한이 없다고 뜬다. 도커 허브에 로그인을 해주자.

 

  • 도커 계정으로 로그인
docker login

 

 

  • 이후 다시 push를 진행해보자
docker image push holywat2r/test:ubuntu

 

docker image push holywat2r/test:centos

 

# push가 잘 됨을 볼 수 있다.

 

  • 도커허브 계정에서 레포지토리를 확인해보자


이미지 삭제하기

  • 도커 이미지를 확인해보자
docker images

 

  • 이미지중 holywat2r:test/centos를 지워보자
docker image rm holywat2r/test:centos

 

 

  • nginx도 삭제해보자.
docker image rm nginx:latest

 

# 에러가 뜬다.

# 사용하지 않는 이미지는 지울 수 있지만 사용중인 이미지는 지울 수 없다.

# 사용중이다 : 해당 이미지를 가지고 컨테이너를 생성했고 실행중이기 때문에.

# 우리는 nginx를 run 할 때 -d 명령어로 백그라운드에서 실행되게 만들었다.

# 그렇기 때문에 이미지 삭제가 되지 않는 것

 

  • --force 명령어로 삭제 가능
docker image rm nginx:latest --force

 

# 그러나 일반적으로 사용중인 이미지는 지우지 않는다.

 

  • 사용중이지 않는 이미지를 전부 제거해보자.
docker image prune
docker image prune -a

 

'DevOps > Docker' 카테고리의 다른 글

[Docker] Dockerfile을 사용한 구성 관리  (0) 2021.09.16
[Docker] Container 생성, 시작 및 정지  (0) 2021.09.16
[Docker] 웹 서버 작동해보기  (0) 2021.09.13
[Docker] Docker 설치  (0) 2021.09.13
[Docker] Docker의 개요  (0) 2021.09.13