LainyZine: 프로그래머 가이드 🐣

Docker Hub 계정 생성하는 방법

Docker Hub는 컨테이너 관리 도구 Docker의 기본이자 공식 이미지 레지스트리(Registry)입니다. 이미지 레지스트리는 Docker 이미지를 저장하고 제공하는 서비스로, 별도의 이미지 레지스트리를 직접 운영하지 않는다면 docker로 이미지를 풀 받을 때 Docker Hub가 사용됩니다.

Docker Hub에서는 Docker 사에서 직접 관리하는 공식 이미지(Official Images)와 검증된 퍼블리셔(Verified Publisher)가 제공하는 이미지 이외에도 직접 빌드한 이미지를 푸시하거나 풀 받는 것도 가능합니다. 계정이 없어도 Docker Hub에서 이미지를 받아오는 것은 가능합니다만, 이미지 저장소를 만들고 이미지를 푸시하려면 반드시 계정이 있어야합니다. 특히 무료 계정을 사용하더라도 공개 이미지의 경우 별도의 제한없이 이미지를 푸시할 수 있습니다. 이 글에서는 먼저 Docker 계정을 생성하는 방법과 2단계 인증 등 초기 보안 셋업에 대해서 소개합니다.

Docker Hub 계정을 생성하는 방법

Docker Hub 계정을 생성하려면 먼저 Docker Hub 웹 사이트를 브라우저에서 엽니다.

잘 보면 별도의 가입 페이지에 접속하지 않더라도, 화면 오른쪽의 Get Started Today for Free라고 쓰여진 폼에서 바로 계정을 생성할 수 있습니다.

Docker Hub 웹사이트. 오른쪽에 가입 폼이 있습니다

ID, 이메일, 패스워드를 입력합니다. reCAPTCHA까지 마치고 Sign Up 버튼만 누르면 계정이 생성됩니다. 정말 간단하죠?

가입 폼을 채우고, Sign Up 버튼을 클릭합니다

홈페이지 첫 화면은 개편에 따라 달라질 수도 있습니다. 이 경우 아래 링크의 별도 가입 페이지에서 계정을 생성해주세요. 입력해야하는 정보는 같습니다.

Docker Hub 플랜 선택 및 이메일 인증

딱 ID, 이메일, 패스워드만으로 계정을 생성할 수 있습니다만, 아직 플랜 선택과 이메일 인증 단계가 남아있습니다. 처음 계정을 생성하면 플랜 선택 페이지가 나타납니다.

처음부터 유료 플랜을 사용해야할 이유는 없기 때문에, Docker Hub가 처음이라면 그냥 고민 없이 Free 플랜 사용을 추천드립니다. Free 플랜만 사용해도 공개 이미지 저장소는 제한 없이 사용할 수 있으며, 1개의 비공개 이미지 저장소를 생성하고 사용할 수 있습니다. 또한 로그인을 하지 않으면 하루 동안 100번 풀이 가능하지만, 무료 계정을 사용하면 200번으로 늘어납니다.

처음 계정을 생성하면 플랜을 선택하는 화면이 나타납니다

유료 플랜은 주로 프라이빗 저장소, CI/CD, 보안 관련 기능, 지원 등에서 차이가 있습니다. 플랜에 따른 상세 비교는 다음 페이지에서 확인할 수 있습니다.

다음으로 이메일 인증을 진행합니다. 플랜 선택을 하면 이메일 인증에 대한 안내가 나오는데, 이메일은 가입 시에 자동으로 발송됩니다. 메시지를 확인하고 가입할 때 입력한 메일에 접속합니다. 페이지 상단에 이메일 인증을 해야한다는 메시지가 나오는데, 이 메시지는 이메일 인증할 때까지 계속 나옵니다.

이메일 인증에 대한 안내

저는 가입할 때 입력한 Gmail로 메일을 받았습니다. 메일을 열어보면 Verify email address 인증 버튼이 있습니다. 이 버튼을 클릭하면 인증이 진행됩니다.

Docker Hub 인증 이메일

인증이 되고, 메인 페이지로 넘어갑니다. 이메일 인증이 성공했고, 더 이상 상단의 이메일 인증에 대한 메시지가 나타나지 않습니다. 여기까지 Docker Hub 계정 생성을 무사히 마쳤습니다.

Docker Hub 2단계 인증 활성화하는 방법

Docker Hub도 2단계 인증을 지원하고 있습니다. 2단계 인증을 활성화하면 패스워드가 유출되더라도 추가 기기 인증을 해야만 계정에 접근이 가능합니다. 보안 강화를 위해 2단계 인증을 권장합니다.

2단계 인증 활성화를 위해 Security 메뉴를 엽니다

먼저 로그인된 상태에서 오른쪽 상단의 프로필을 클릭하고 Account Settings 페이지로 이동합니다. 왼쪽 사이드 바의 Security 탭을 선택합니다. 아래로 스크롤을 내리면 Two-Factor Authentication 메뉴가 있습니다. Enable Two-Factor Authentication 버튼을 클릭합니다.

2단계 인증 활성화를 시작합니다

패스워드 입력창이 나타나면, 한 번 더 패스워드를 입력하고 Enable 2FA 버튼을 클릭합니다.

패스워드 인증을 한 번 더 진행합니다

2단계 인증에 대한 설명이 나타납니다. 내용을 확인하고 오른쪽 아래의 Set up using an app 버튼을 클릭해 설정을 진행합니다.

2단계 인증에 대한 안내창이 나타납니다

복구 코드가 나타납니다. 이 복구 코드는 2단계 인증이 불가능할 때 임시로 사용 가능한 코드입니다. 2단계 인증 기기 분실 등으로 로그인이 불가능해지면 계정 복구가 불가능할 수도 있습니다. 이 코드는 로그인 되어있을 때 다시 확인할 수 있습니다만, 만약에 대비해 별도로 저장하거나 인쇄해두는 것을 추천합니다. 확인 후 Next 버튼을 클릭합니다.

복구 코드를 저장해둡니다

2단계 인증 활성화용 QR 코드가 나타납니다. 이 코드를 자신이 사용하는 OTP 앱에서 스캔해야합니다. Google OTP, Authy, 1Password 등을 OTP 앱으로 사용할 수 있습니다. Authy나 1Password를 사용한 2단계 인증 방법은 다음 글에서 좀 더 자세히 다루고 있으니 참고해주세요.

2단계 인증용 QR 코드가 나타납니다. 이 코드를 OTP 앱에서 스캔합니다

여기서는 Google OTP(iOS: Google Authenticator)를 사용해서 QR 코드를 등록해보았습니다. 다음과 같이 hub.docker.com(lainyzine) 의 2단계 인증 코드가 나타납니다.

Google OTP 앱에 추가된 화면

이 6자리 코드를 앞선 2단계 인증 진행 페이지의 하단 폼에 입력하고 Next 버튼을 클릭합니다.

2단계 인증이 완료되었습니다

여기까지 2단계 인증은 완료되었습니다. 단, 안내에 나와있는대로 2단계 인증을 사용하는 경우 더 이상 CLI에서 이메일/패스워드 로그인이 불가능합니다. 이 문제를 해결하려면 별도의 개인 접근 토큰(Personal Access Token)을 발급해야합니다. 이에 대해서는 뒤에서 소개합니다.

인증을 마치고 다시 Security Tab을 확인해보면, 2단계 인증이 활성화되었다(Two-factor authentication is enabled)는 메시지를 확인할 수 있습니다.

2단계 인증이 활성화되었다는 메시지가 나타납니다

Docker Hub를 포함해 중요한 계정들은 항상 2단계 인증을 활성화해서 보호해주세요.

개인 접근 토큰(Personal Access Token) 발급하는 방법

앞에서 잠깐 소개한대로 2단계 인증을 활성화하면 CLI에서 이메일/패스워드로 Docker Hub 로그인이 불가능해집니다. 따라서 별도의 개인 접근 토큰을 발급 받아 사용해야합니다. 2단계 인증을 설정할 때와 마찬가지로 우측 상단의 프로필 이미지 > Account Settings > 좌측의 Security 탭으로 이동합니다. Access Tokens 섹션이 보입니다. New Access Token 버튼을 클릭합니다.

Security 메뉴에 Access Tokens 섹션이 있습니다

토큰 생성에 필요한 정보는 키 이름과 권한입니다. CLI에서 사용하는 용도이므로 권한은 Read, Write, Delete를 모두 부여합니다.

개인 접근 토큰의 이름과 권한을 지정합니다

오른쪽 아래의 Generate 버튼을 클릭하면 토큰이 생성되고, 화면에 토큰이 나타납니다. 토큰은 생성할 때 딱 한 번만 확인할 수 있습니다. 이 정보를 안전한 곳에 저장하고 사용해주세요.

Docker Hub의 개인 접근 토큰이 생성되었습니다

다시 Security 탭에 접속해보면 토큰이 발급된 것을 확인할 수 있습니다. 무료 계정의 경우 토큰을 딱 1개밖에 만들 수 없습니다. 만약 토큰 유실 등으로 새로운 토큰이 필요하다면, 기존 토큰을 삭제한 후 다시 생성해야합니다.

여기까지 Docker Hub 계정을 생성하고 초기 보안 셋업에 대해서 알아보았습니다.

LainyZine은 쿠팡 파트너스 활동에 따른 수수료를 제공받습니다.