소개
Docker 는 격리된 환경에서 애플리케이션을 패키징하고 실행할 수 있게 해주는 강력한 컨테이너화 플랫폼입니다. Docker 를 사용할 때, 종종 인증이 필요한 컨테이너 레지스트리 (container registry) 와 상호 작용해야 합니다. 현재 로그인 상태를 아는 것은 Docker 워크플로우 (workflow) 를 효율적으로 관리하는 데 필수적입니다.
이 Lab 에서는 docker info 명령어를 사용하여 Docker 로그인 상태를 확인하는 방법을 배웁니다. 이 기술은 Docker 사용자에게 기본적으로, 개인 레지스트리에서 이미지를 pull 하고 push 할 수 있는 적절한 접근 권한을 확보하는 데 도움이 되기 때문입니다.
Docker 설치 확인
로그인 상태를 확인하기 전에, 먼저 Docker 가 시스템에 올바르게 설치되고 실행되고 있는지 확인해 보겠습니다. 이 단계는 후속 작업을 위한 Docker 환경이 제대로 작동하는지 확인합니다.
Docker 상태 확인
LabEx 환경에서 터미널을 엽니다. 데스크톱 환경에서 터미널 아이콘을 클릭하여 열 수 있습니다.
터미널이 열리면, 다음 명령을 실행하여 Docker 가 설치되고 실행 중인지 확인합니다.
docker --version
이 명령어는 시스템에 설치된 Docker 의 버전을 표시합니다. 다음과 유사한 출력을 볼 수 있습니다.
Docker version 20.10.21, build 20.10.21-0ubuntu1~22.04.3
다음으로, Docker 데몬 (daemon) 이 제대로 실행되고 있는지 확인해 보겠습니다. 다음 명령을 실행합니다.
docker run hello-world
Docker 가 제대로 작동하면, 테스트 이미지를 다운로드하여 컨테이너에서 실행합니다. 다음과 같은 출력을 볼 수 있습니다.
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
이것은 Docker 가 시스템에 올바르게 설치되고 실행되고 있음을 확인합니다. 오류가 발생하면, 다음 명령으로 Docker 서비스가 실행 중인지 확인하십시오.
sudo systemctl status docker
출력은 Docker 서비스가 활성 상태 (running) 임을 보여야 합니다.
이제 Docker 가 제대로 작동하는 것을 확인했으므로, 다음 단계에서 docker info 명령어에 대해 알아보겠습니다.
Docker Info 명령어 이해
이 단계에서는 docker info 명령어를 살펴보고, 이 명령어가 Docker 환경에 대한 유용한 정보를 어떻게 제공하는지 이해합니다.
Docker Info 명령어 실행
docker info 명령어는 Docker 설치에 대한 포괄적인 개요를 제공합니다. 컨테이너 및 이미지 수, 서버 버전, 스토리지 드라이버 (storage driver) 등과 같은 시스템 전체 정보를 표시합니다.
터미널에서 docker info 명령어를 실행해 보겠습니다.
docker info
다양한 섹션이 있는 자세한 출력을 볼 수 있습니다. 출력은 다음과 유사합니다.
Client:
Context: default
Debug Mode: false
Plugins:
buildx: Docker Buildx (Docker Inc.)
Version: v0.9.1
Path: /usr/libexec/docker/cli-plugins/docker-buildx
...
Server:
Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
Server Version: 20.10.21
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
userxattr: false
...
Registry: https://index.docker.io/v1/
...
출력에는 Docker 클라이언트와 Docker 서버에 대한 정보가 포함된 여러 섹션이 있습니다.
Docker Info 출력의 주요 섹션
docker info 출력의 몇 가지 주요 섹션을 이해해 보겠습니다.
- Client: Docker 클라이언트 구성에 대한 정보.
- Server: Docker 서버 (daemon) 에 대한 정보.
- Containers: 시스템의 컨테이너 수 (실행 중, 일시 중지, 중지된 컨테이너 포함).
- Images: 시스템의 Docker 이미지 수.
- Server Version: Docker 서버의 버전.
- Storage Driver: Docker 에서 사용하는 스토리지 드라이버.
- Registry: 구성된 Docker 레지스트리에 대한 정보.
로그인 상태를 확인하기 위해, 다음 단계에서 살펴볼 Registry 섹션에 특히 관심이 있습니다.
Docker 로그인 상태 확인
이제 docker info 명령어를 이해했으므로, 이 명령어를 사용하여 Docker 로그인 상태를 확인하는 방법에 집중해 보겠습니다.
Docker Info 에서 로그인 상태 해석
docker info 명령어를 실행하면, 출력에 Docker Hub 로그인 상태에 대한 정보가 포함됩니다. 특히, Registry 섹션을 찾아야 합니다.
다시 명령어를 실행합니다.
docker info
이제 출력에서 Registry 섹션을 찾습니다.
어떤 Docker 레지스트리에도 로그인하지 않은 경우, 출력은 기본 레지스트리 URL 을 표시합니다.
Registry: https://index.docker.io/v1/
로그인한 경우, 사용자 이름을 포함한 추가 정보가 표시됩니다.
Registry: https://index.docker.io/v1/
Username: yourusername
현재, Docker Hub 또는 다른 레지스트리에 로그인하지 않았을 가능성이 큽니다.
Docker Hub 에 로그인
로그인 상태 정보가 어떻게 변경되는지 확인하기 위해 Docker Hub 에 로그인해 보겠습니다. Docker Hub 에 로그인하려면, docker login 명령어를 사용합니다.
docker login
이 명령어는 Docker Hub 사용자 이름과 비밀번호를 묻는 메시지를 표시합니다.
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username:
Password:
이 랩의 목적상, 실제 자격 증명을 입력할 필요는 없습니다. 대신, Ctrl+C 를 눌러 로그인 프로세스를 취소합니다.
로그인 상태를 확인하는 대체 방법
docker info 명령어를 사용하는 것 외에도, Docker 구성 파일을 검사하여 Docker Hub 에 로그인했는지 확인할 수 있습니다.
ls -la ~/.docker/
로그인한 경우, 이 디렉토리에 config.json이라는 파일이 표시됩니다. 이 파일에는 인증 정보가 포함되어 있습니다. 다음 명령으로 내용을 볼 수 있습니다.
cat ~/.docker/config.json
로그인하지 않은 경우, 파일이 존재하지 않거나 인증 정보를 포함하지 않을 수 있습니다.
Docker 레지스트리에서 로그아웃
이제 로그인 상태를 확인하고 로그인하는 방법을 이해했으므로, Docker 레지스트리에서 로그아웃하는 방법을 알아보겠습니다.
Docker Logout 명령어 사용
Docker 레지스트리에서 로그아웃하려면, docker logout 명령어를 사용할 수 있습니다. 이 명령어는 지정된 레지스트리에 대한 저장된 자격 증명을 제거합니다. 아무것도 지정하지 않으면 기본 레지스트리가 사용됩니다.
다음 명령어를 실행합니다.
docker logout
로그인하지 않은 경우, 다음과 같은 메시지가 표시됩니다.
Not logged in to https://index.docker.io/v1/
로그인했고 로그아웃이 성공한 경우, 다음과 같은 메시지가 표시됩니다.
Removing login credentials for https://index.docker.io/v1/
로그아웃 상태 확인
로그아웃 후, docker info 명령어를 사용하여 로그인 상태를 확인해 보겠습니다.
docker info
다시 Registry 섹션을 찾아보세요. 이제 사용자 이름 정보 없이 레지스트리 URL 만 표시되어야 합니다.
Registry: https://index.docker.io/v1/
Docker 구성 파일을 다시 확인할 수도 있습니다.
cat ~/.docker/config.json
이전에 로그인했었다면, 파일은 로그아웃한 레지스트리에 대한 인증 정보를 제거하도록 업데이트되었을 것입니다.
Docker 레지스트리 인증 이해
Docker 는 토큰 기반 인증을 사용하여 레지스트리에 대한 액세스를 관리합니다. 레지스트리에 로그인하면, Docker 는 인증 토큰을 구성 파일 (~/.docker/config.json) 에 저장합니다. 이 토큰은 로그아웃하거나 토큰이 만료될 때까지 레지스트리와의 후속 상호 작용에 사용됩니다.
로그인 상태를 확인하고 인증을 관리하는 방법을 이해하는 것은, 특히 개인 레지스트리 (private registries) 로 작업할 때 안전한 Docker 운영에 필수적입니다.
요약
이 랩에서는 Docker 레지스트리 인증을 관리하기 위한 필수 기술을 배웠습니다.
- Docker 가 제대로 설치되고 실행되고 있는지 확인
docker info명령어를 사용하여 Docker 환경에 대한 자세한 정보 보기docker info명령어를 사용하여 Docker 로그인 상태 확인- Docker Hub 에 로그인하는 과정 이해
- Docker 레지스트리에서 로그아웃하고 로그아웃이 성공했는지 확인
이러한 기술은 Docker 를 사용하는 데 기본이며, 특히 개인 레지스트리와 상호 작용하거나 인증 자격 증명을 보호해야 할 때 중요합니다.
이제 Docker 로그인 상태를 자신 있게 관리하여 향후 프로젝트에서 안전하고 효율적인 Docker 운영을 보장할 수 있는 지식을 갖추게 되었습니다.



