본문 바로가기
Containers/Docker

이미지 다운로드 / 관리 / 삭제

by shinebee* 2020. 7. 14.

1. Doker Hub

  • 도커의 기본 이미지 저장소
  • 이미지 공유
  • 이미지를 검색하거나 특정 이미지를 사용하여 컨테이너를 실행하는 방법에 대해 알 수 있다.
  • 도커 회사가 개발한 official image는 물론 사용자들이 개발한 이미지들도 다운받을 수 있다.
  • 형태 -> 저장소 이름 : Tag (official)  ,  허브의 ID/저장소 이름 : Tag ( 그 외)
  • 허브의 ID : 사용자가 다수의 이미지 저장소를 가질 수 있고, 이미지의 업로드 할 때 인증에 필요한 절차로 사용된다.

 

 

 

2. docker search

  • 이미지 검색

  • official image  =>  name : centos
  • centos  ->  저장소 이름(repository)
  • user image ⇒ name : ansible/centos7-avilable
  • ansible/centos7-avilable → hubID/RepositoryName

 

 

  • image field
    • NAME : 이미지 저장소 이름
    • DESCRIPTION : 이미지에 대한 설명
    • STARS : 이미지에 대한 평가점수
    • OFFICIAL : 공식 이미지 여부
    • AUTOMATED : 자동화 빌드 여부

 

 

  • default tag : latest

 

  • docker search 명령은 이미지 저장소에 저장되어있는 태그까지는 알 수 없다.
  • 원하는 이미지를 정확하게 검색하려면 도커 허브를 사용해라.
  • 중복된 layer는 다운받지 않는다.
  • 같은 repository에 있더라도 tag가 다르면 다운로드 받는다.

 

  • Docker Object
    • 하나의 객체
    • docker를 사용해서 다운받는 것들 ⇒ docker resource
      • image, container, network, volume
    • openstack resource ⇒ server, network, image, flavor, volume, sg, keypair

 

 

 

3. docker pull

  • 이미지 다운로드

  • Tag를 지정하지 않으면 자동으로 Tag에 latest가 부여된다.
  • Tag ≒ Hard link

 

 

  • docker inspect mysql:5.7

  • 위와 같이 이미지는 다수의 layer로 이루어져있다.
  • 이미지마다 layer의 수는 다르며 만약 layer가 중복된다면 다시 다운로드 받지 않는다.

 

 

 

4. docker images

  • 이미지 목록 나열.
  • = docker image ls

 

 

 

5.  docker rmi

  • remove image

  • 삭제하려고 하는 이미지와 관련된 레이어는 전부 삭제된다.
  • 해당 레이어를 다른 컨테이너 또는 이미지가 사용하고 있다면 삭제하지 않는다.

 

1. docker rmi hello-world

docker ps -a
2. docker rm [id 앞자리 두개]

docker ps -a
3. docker rm -f hello-world

1. tag를 붙여주지 않으면 삭제되지 않는다.

2. id로 삭제 가능하다.

3. -f 옵션으로 사용중인 이미지도 삭제 가능하다. 권장하지 않음.

 

 

 

6. docker inspect

  • 자세한 정보 확인
  • 이미지 뿐만 아니라 도커 오브젝트의 정보를 자세히 확인 할 수 있다.

  • NAME = docker object의 이름이나 ID

 

 

  • docker inspect centos:latest

  • "RepoDigests" → hash 값

 

  • "AttachStdin" : 표준입력(키보드로 입력하는 것)
  • "Env" : 환경변수
  • "Cmd" : 이 어플리케이션을 실행했을 때 실행하는 명령어
    • systemctl로 시작할수 있는가, 방화벽을 열어야되는가 → 서비스 아님
    • 서비스 3요소
      • binary
      • port
      • 설정파일
    • ex) /bin/bash는 설정파일이 있지만 port가 없다.그러므로 서비스 아님.
    • ex) httpd → 노출되는 port가 있다 → 서비스.
  • "WorkingDir" : 컨테이너에 접근했을 때의 디렉토리. 비어있으면 보통 / 이다.
  • "Entrypoint" : Entrypoint가 지정되어있지 ㅇ낳으면 Cmd가 명령으로 동작하며, Entrypoint와 Cmd가 함께 있으면 Entrypoint가 명령어이고 Cmd가 인자처럼 동작한다.
  • /root ≠ /
    • /root → root의 home dir

 

  • "RootFS" → Layers
    • 각 layer마다 file의 내용물이 들어있다.
    • 내용물의 양이 많을수록 이미지의 크기가 커진다.
    • layer를 구분할때는 hash값으로 구분한다.

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

이미지 제작  (0) 2020.07.20
간단한 Docker 실습  (0) 2020.07.20
Install Docker (Ubuntu)  (0) 2020.07.13
Docker란?  (0) 2020.07.13

댓글