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
apiVersion: v1
kind: Pod
metadata:
name: <Pod 이름>
spec:
containers:
- name: <컨테이너 이름>
image: <Docker Hub ID>/<Repository 이름(private)>:<이미지 버전>
imagePullSecrets:
- name: secretTest