리눅스 도커허브 로그인 정보 관리

KingTG·2024년 5월 13일

도커&k8s

목록 보기
13/13
post-thumbnail

리눅스에서 도커허브에 접근하기위해 docker login 명령어를 치고 로그인을 하게 되면

/.docker/config.json 파일에 로그인 정보가 저장되게 된다. cat으로 확인을 해보면 암호화가 되어있지만 유틸리티를 설치 후 명령어 만으로도 로그인 정보를 볼 수 있게 된다.

리눅스에 로그인 정보를 저장해 놓으면 여러이유로 보안에 취약하기 때문에 젠킨스에 등록을해 관리 한다.

기존에 했던 아이템을 카피하고

jenkins관리 → credentials

system → global credentials → add credentials

도커허브 접속정보

kind : username~~

username : 도커허브 username

password : 도커허브 pw

id: 나중에 젠킨스로 이 id 가져옴

Kubernetes config 파일

다시 Add credentials 눌러주고

kind : secret file

file : /var/lib/jenkins/.kube 에 있는 config파일

id : 젠킨스에서 사용할 id

리눅스에 있는 파일을 윈도우로 복사하기 위해 scp명령어 사용

https://coconuts.tistory.com/343

저장을 하고 터미널에서 cat ~/.docker/config.json 명령어를 통해 파일을 확인해보면 빈칸으로 나오는데 젠킨스를 통해 파이프라인을 돌리면 도커허브 접속 가능하다.

젠킨스 파일 내용

// Docker 사용
//usernamePassword(젠킨스 크레덴셜 kind에 써놓은 환경변수 대입
steps {
  script{
    withCredentials([usernamePassword(credentialsId: 'docker_password', passwordVariable: 'PASSWORD', usernameVariable: 'USERNAME')]) {
    sh "echo " + '${PASSWORD}' + " | docker login -u " + '${USERNAME}' + " --password-stdin"

// Kubernetes config 사용
// --kubeconfig ==> 디폴트로 되어있는 인증서 대신 '${KUBECONFIG}'이 내용을 인증서로 사용
steps {
  withCredentials([file(credentialsId: 'k8s_master_config', variable: 'KUBECONFIG')]) {    // 암호화로 관리된 config가 들어감
    sh "kubectl apply -f ./2224/deploy/kubectl/namespace-dev.yaml --kubeconfig " + '${KUBECONFIG}'
    sh "helm upgrade api-tester-2224 ./2224/deploy/helm/api-tester -f ./2224/deploy/helm/api-tester/values-dev.yaml" +
        " -n anotherclass-222-dev --install --kubeconfig " + '${KUBECONFIG}'

0개의 댓글