본문 바로가기

프로젝트/클라우드 스터디

[2회차] 03. docker hub 및 docker 이미지 관리 명령어 모음

2회차 글 목록

03. docker hub 및 docker 이미지 관리 명령어 모음

04. Docker 컨테이너 기본 개념 + 컨테이너 관리 명령어
05. 

 

1. Docker Hub

  • Docker 이미지 저장소
  • 수많은 Docker Image가 존재하며, 기본적으로 클라이언트와 연동 됨. 
  • 자신이 만든 이미지를 업로드, 다운 가능
  • Github, Bitbuket과 같은 소스코드 관리 도구와 연계하여 코드 빌드 가능
  •  https://hub.docker.com 공식 저장소 링크



공식 링크에 들어가면 다음과 같이 다양한 이미지들을 볼 수 있다. 

 

Nginx 이미지 칸을 누르면 Nginx이미지에 대한 설명이 나온다. 어떻게 사용하는지 같은 방법이 나온다. 









2. Docker 이미지 관련 명령어

항목  명령어
도커 이미지 검색  docker search 
도커 이미지 다운로드 docker pull
도커 이미지 목록 확인 docker ps 
도커 이미지 자세한 내용 확인 docker inspect
도커 이미지 태그 설정 docker tag 
도커 허브에 로그인 docker login
도커 이미지 업로드 docker push
도커 이미지목록보기  docker image ls
도커 이미지 삭제  docker image rm 




도커 이미지 저장소

도커 이미지 저장소는 총 3가지가 존재한다. 

 

Public
  • docker hub
  • 불특정 다수가 접속 가능한 공간
  • 회원가입을 통해 이미지 push 가능
Private
  • 특정 사용자/그룹 사용자만 접속할 수 있다.
  • docker login https://10.10.10.10  으로 사용
local
  • 본인만 사용 가능
  • 컨테이너 생성시 1차 적으로 로컬 저장소 검색함.

docker 저장소 유형별 활용 





도커 기본 명령어 안내?

docker --help

docker help

를 통해 기본적인 도커 명령어를 간단하게 알 수 있다. 또한 docker의 man페이지도 존재한다. 



docker image --help와 같은 형식으로 더욱 자세한 도움을 받을 수 있다. 





이미지 검색

방법1. Docker 허브 웹 사이트에서 검색

방법2. docker search 이미지명 



아래는 docker search nginx 사용 예이다. 

NAME. DESCRIPTION, STARS. OFFICIAL, AUTOMATED라는 항목이 나온다. 

항목 설명
NAME 이미지 명
DESCRIPTION 이미지 설명
STARS 즐겨찾기 수
OFFICIAL 공식 이미지 여부
AUTOMATED DockerFile을 바탕으로 자동 생성된 이미지 여부








도커 이미지 다운로드

기본 사용법

docker image pull 이미지명



태그를 지정함으로써 버전, 특정 사이트에서 다운 받기 등을 사용할 수 있다. 태그를 따로 지정하지 않으면 ‘이미지명:lates’로 태그한 것과 같다. 

docker image pull 이미지명:태그





alpine/socat 이미지를 다운로드 해주었다. 





이미지 목록 보기

docker image ls
docker images

 

 

 

이미지 삭제

docker image rm 이미지id(혹은 이미지명)





도커 이미지 자세한 내용 확인

docker image inspect 이미지명

  • 이미지에 대한 정보를 자세히 출력한다. 

요런식으로 아래가 짤렸지만 매우매우 자세한 정보를 보여준다. 

 

--format=”{{  }}” 옵션을 이용해 특정 항목의 값만 확인할 수 있다.

docker image inspect --format="{{ .Os }}" hello-world





도커 이미지 태그 설정

도커 이미지태그는 보통 도커 허브에 올리기 위해 설정한다. 

사용자명은 소문자만 가능하다. 

docker    image    tag   기존 이미지명     사용자명/이미지명:태그명

docker    image    tag   nginx     jini/test-nginx:1.0




도커 이미지 삭제

1개의 이미지 삭제

docker   image  rm  이미지명

 

1개 이상의 이미지 삭제

docker image rmi  이미지명






도커 허브에 로그인/로그아웃

로그인

docker  login  사용자ID

docker  login  -u 아이디 -p 패스워드

 

단순히 login 사용자 id만 하면 자동으로 다음과정은 패스워드 입력을 받게끔 나온다. 

저장소를 따로 지정하지 않으면 기본적으로 도커 허브(hub.docker.com)을 사용한다. 

로그인 정보는 사용자 홈 디렉터리의 .docker/config.json파일에 저장된다. 

 

로그아웃

docker  logout  
docker  logout  저장소링크



Q. 로그인시 경고창 뜨는 이유

https://docs.docker.com/reference/cli/docker/login/#credentials-store 여기서 자세한 설명 볼 수 있다. 

대충 요약하자면 로그인시 비밀번호를 설정파일에 저장하는데, 미암호화 상태로 저장된다는 것 같다. 

 

.docker/config.json 파일에 

 "credsStore": "osxkeychain" 라는 부분을 추가하면 된다고 한다. 

mac : osxkeychain / linux : paas  혹은 secretservice  / 윈도우 : wincred

.docker/config.json




근데 난.. 추가 했는데도 로그인시 똑같은 경고가 뜬다… 



도커 이미지 업로드

도커 이미지를 도커허브에 업로드한다. 

docker image push 이미지명 
docker push 이미지명 



이미지를 업로드 해주기 위해서는 이미지에 태그가 지정된 상태로 업로드 해야한다. 

docker tag 이미지명 아이디/이름:태그 
docker tag nginx jini078/upload_test_nginx:1.0