Cloud Computing & MSA

쿠버네티스 Docker Hub (public/private) 사용

DDansoJ·2018년 10월 12일·조회 10,280

https://hub.docker.com 에 가입시 무료는 계정당 public 무제한 / private 1 개가 주어집니다

public에 중요한 데이터를 올리고 사용 할 수는 없으니 private를 이용하거나  더 많은 repository를 이용하고 싶다면

유료전환 혹은 개인 repository를 이용해야 합니다.

다음은 쿠버네티스에서 각 영역을 사용하는 방법입니다. (선행작업 - docker build 및 docker push 등으로 이미지가 올라가 있어야 합니다.)

[public 사용법]

pod 생성

$ kubectl create -f test.yaml

-------------test.yaml-----------------------------------------------
apiVersion: v1

kind: Pod
metadata:
  name: <Pod 이름>
spec:
  containers:
  - name: <컨테이너 이름>
    image: <Docker Hub ID>/<Repository 이름>:<이미지 버전>
 
 
 
[private 사용법]
 
기본적으로 $ doker login 명령을 수행하면 
 
도커 허브로 로그인이 되며 그 정보는 아래 파일에 등록 됩니다.
 
$ cat ~/.docker/config.json 
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "abcdefghijklmnopqrstuvwxyz"
}
}
}
 
이 파일에서 auth부분을 아래처럼 decode 하면 본인이 입력한 ID/PW 도 확인 가능하죠.
 
$ echo "abcdefghijklmnopqrstuvwxyz" | base64 --decode
<dockerID>:<dockerPW>
 
 

secret 생성

$ kubectl create secret docker-registry <secret 이름 : secretTest> --docker-username=<도커ID> --docker-password=<도커PW> --docker-email=<e-mail>

확인

$ kubectl get secret
 

pod 생성시 위에서 만든 secret 사용

$ kubectl create -f test2.yaml
-------------test2.yaml-----------------------------------------------
apiVersion: v1
 
kind: Pod
metadata:
  name: <Pod 이름>
spec:
  containers:
  - name: <컨테이너 이름>
    image: <Docker Hub ID>/<Repository 이름(private)>:<이미지 버전>
  imagePullSecrets:
  - name: secretTest
 

댓글 4

로그인 후 댓글을 남길 수 있습니다.

  • 나크나로· 2018년 10월 12일
    secret 만들어서 사용하는 부분을 유용하게 적용했네요. 고맙습니다~
  • DDansoJ· 2018년 10월 12일
    Docker hub에 여러 계정 만들어서 secret를 여러개 만들면 매우 편하게 사용은 가능하지만... secret 특성상 최대 1MB까지 저장이 가능하며, 메모리에 올라가는 형태이기 때문에 많이 사용하면 Memory 부족으로 치명적일 수 있습니다.
  • jjasmin· 2019년 4월 18일
    혹시... dcoker hub를 gitlab처럼 private 하게 구축해서 사용할 수 있을까요?
  • DDansoJ· 2019년 6월 20일
    docker repository 를 설치 하시고 사용하시면 됩니다. docker hub는 글에도 말씀 드렸지만 무료버전에서는 private 1개 뿐입니다. 결제해야 합니다.