nayoungs
항상 끈기있게
nayoungs
  • 분류 전체보기 (274)
    • Cloud (21)
      • AWS (15)
      • Azure (3)
      • NCP (2)
      • GCP (1)
    • DevOps (68)
      • Docker (16)
      • Kubernetes (50)
      • CICD (2)
    • IaC (25)
      • Ansible (17)
      • Terraform (8)
    • Certification (4)
    • 금융 IT (5)
    • AI (3)
    • Linux (47)
    • 미들웨어 (5)
    • Programming (7)
      • GoLang (3)
      • Spring (4)
    • CS (25)
      • 네트워크 (17)
      • 운영체제 (5)
      • Web (1)
      • 개발 상식 (2)
      • 데이터베이스 (0)
    • Algorithm (59)
      • 프로그래머스 (36)
      • 백준 (18)
      • 알고리즘 정리 (5)
    • ETC (5)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
nayoungs

항상 끈기있게

DevOps/Docker

[Docker] Docker Hub에 이미지 업로드하기

2022. 5. 12. 22:06
728x90

 

이미지는 웹 인터페이스에서 올리지 못하고, 반드시 명령어로만 올릴 수 있다.

Docker Hub 에 이미지를 push하기 위해서는 docker login 명령을 통해 로그인 해야한다.

(인증을 받아야한다.)

$ docker login

Login Succeeded 가 나와야 로그인에 성공한 것이다.

로그인하면 인증정보가 홈 디렉토리의 ./docker/config.json 에 저장된다.

 

이미지를 빌드할 때는 홈 디렉토리의 파일이 올라갈 수 있기 때문에 홈 디렉토리에서 하면 안되고,

root에서 해도 안된다.

 

로컬에 있는 이미지를 아무거나 docker push 해보자

$ docker push pyhello:v1
The push refers to repository [docker.io/library/pyhello]
98bd83fe59fc: Preparing
bdfe286695e3: Preparing
240b01a8ef06: Preparing
4bc966bb1030: Preparing
99382be4915c: Preparing
ca58f1c44290: Waiting
957a6eed8d1f: Waiting
85fe00380881: Waiting
5d253e59e523: Waiting
b9fd5db9c9a6: Waiting
denied: requested access to the resource is denied

이미지는 올라가지 않는다. (denied)

왜일까❔

이미지를 push할 때는 이미지의 이름을[/docker계정/image:tag] 형식에 맞춰서 만들어줘야한다.

 

기존 이미지에 원하는 이름 붙이기

이미지가 바뀌는 것이 아니라 원래 이미지에 태그가 더 붙게 되는 것이다.

이미지의 태그는 붙여도되고 안붙여도 괜찮은데, 안붙이면 자동으로 latest 태그가 붙게된다.

$ docker tag [기존이미지명]:[태그명] [도커계정명]/[새로운이미지명]:[태그명]

 

 

예시

$ docker tag pyhello:v1 [Account]/pyhello:v1
$ docker image ls | grep pyhello
pyhello             v1-alpine         7d2cd787a913   26 hours ago     47.5MB
pyhello             v1-slim           f156633ac250   26 hours ago     118MB
pyhello             v1                3bc5e43f16b9   26 hours ago     889MB
[Account]/pyhello   v1                3bc5e43f16b9   26 hours ago     889MB

pyhello 와[Account]/pyhello의 이미지 아이디가 같으므로 동일한 이미지이고, 태그만 더 붙인 것이다.

이제 다시 이미지를 push 해보자

$ docker push [Account]/pyhello:v1

이미지를 올리면 default가 Public으로 올란간다.

 

Public은 아무나 pull할 수 있고, Public Repository는 무제한이다.

Private은 pull도 push도 인증받은 사용자만 가능하다.

Private은 무료는 1개만 가능하고, 이미지의 settings에서 Visibility Settings를 통해 Private으로 변경시킬 수 있다.

 

 

이미지가 잘 올라간 것을 확인할 수 있다!

 

 

728x90
저작자표시 비영리 (새창열림)
    'DevOps/Docker' 카테고리의 다른 글
    • [Docker] Docker Compose로 WordPress 배포하기
    • [Docker] Docker Compose의 사용
    • [Docker] Docker에 node.js 배포하기
    • [Docker] Docker에 Go 배포하기
    nayoungs
    nayoungs
    안되면 될 때까지

    티스토리툴바