본문 바로가기

DevOps & Infra/Docker

[Infrastructure/Docker] docker login 사용법, CLI에서 도커 계정 로그인하기

CLI에서 도커 이미지를 Push하는 등 일부 도커 허브 작업을 수행하려면 도커 허브 계정으로 로그인이 필요합니다. 

ID/Password 로그인

CLI에서 도커 허브 계정의 ID/Password를 사용하여 로그인 할 수 있습니다. 도커 허브 계정의 ID는 이메일 주소를 제외하고 입력합니다.

$ docker login -u [도커 허브 계정 ID] -p [도커 허브 계정 Password]

로그인이 성사되면 다음 경고 메시지가 출력됩니다.

WARNING! Using --password via the CLI is insecure. Use --password-stdin.
Login Succeeded

Logging in with your password grants your terminal complete access to your account. 
For better security, log in with a limited-privilege personal access token. Learn more at https://docs.docker.com/go/access-tokens/

경고 문구에 따르면 Password를 직접 사용하는 것보다 Personal Access Token 사용을 권장하고 있습니다.

ID/Personal Access Token 로그인

Personal Access Token을 사용하여 로그인하면 더 높은 보안 수준으로 CLI 사용이 가능합니다. 우선 도커 허브에서 Personal Access Token을 생성합니다.

  • 도커 허브에 로그인
  • 우측 상단의 계정 이름(ID)을 클릭
  • 드롭다운 리스트가 펼쳐지면 Account Settings로 이동
  • 좌측 사이드바 메뉴에서 Security로 이동
  • Security 페이지에서 Access Tokens > New Access Token 클릭

Access Token Description을 임의로 입력하고, 토큰 권한에 맞는 Access Permissions를 선택합니다. Access Permissions 지정 값에 따라서 토큰마다 Access 권한이 다르게 설정됩니다.

  • Read, Write, Delete
    가장 낮은 보안 수준을 갖습니다. 해당 토큰으로 접근하는 사용자는 계정의 모든 저장소에 대한 읽기(Pull), 쓰기(Push), 삭제(Del) 권한이 부여됩니다.
  • Read & Write
    해당 토큰으로 접근하는 사용자는 계정의 모든 저장소에 대한 읽기(Pull), 쓰기(Push) 권한이 부여됩니다.
  • Read-only
    해당 토큰으로 접근하는 사용자는 계정의 모든 저장소에 대한 읽기(Pull) 권한이 부여됩니다.
  • Public Repo Read-only
    가장 높은 보안 수준을 갖습니다. 해당 토큰으로 접근하는 사용자는 계정의 Public 저장소에 대한 읽기(Pull) 권한만 부여됩니다. 이 토큰은 Private 저장소에 대한 접근이 불가능합니다.

입력을 마치고 Generate 버튼을 클릭하면 토큰 값이 자동으로 완성됩니다.  일단 Copy and Close 버튼을 누르고 나면 더 이상 토큰 값을 확인 할 수 없기 때문에 안전한 PC 등에 기입하여 관리해야 합니다.

더 이상 사용하지 않는 토큰은 삭제 할 수 있으며 여러 개의 토큰을 생성하려면 유료 구독 서비스를 신청해야 합니다. 이제 CLI로 이동하여 다음 명령문을 사용하여 로그인합니다.

$ docker login -u [도커 허브 계정 ID] -p [Personal Access Token]

CLI에서 도커 계정 로그아웃

다음 명령문을 사용하여 CLI에서 도커 계정을 로그아웃합니다.

$ docker logout