컨테이너 접속 및 관리

DockerBeginner
지금 연습하기

소개

Docker 는 컨테이너라는 개념을 도입하여 애플리케이션 배포 및 관리 방식에 혁신을 가져왔습니다. 컨테이너는 Docker 가 설치된 환경이라면 어디서든 실행 가능한 가볍고 독립적인 환경입니다. 개발자나 시스템 관리자에게 Docker 컨테이너 관리 능력을 갖추는 것은 효율적인 애플리케이션 배포와 유지보수를 위해 매우 중요합니다. 이번 챌린지에서는 Docker 명령줄 인터페이스 (CLI) 를 활용해 컨테이너 관리의 핵심적인 작업들을 직접 수행하며 실력을 점검해 보겠습니다.

이 과정에서 여러분은 실제 업무 환경에서 마주칠 수 있는 다양한 시나리오를 경험하게 됩니다. 컨테이너 실행부터 로그 모니터링, 내부 명령 실행, 그리고 마지막 자원 정리까지 Docker 컨테이너 운영의 전체 생명주기를 직접 다루며 실무 감각을 익힐 수 있습니다.

그럼 이제 Docker 컨테이너 관리의 전문가가 되기 위한 여정을 시작해 봅시다!

컨테이너 시작하기

Docker 워크플로우의 첫 번째 단계는 대개 컨테이너를 실행하는 것입니다. 이번 단계에서는 컨테이너를 시작하고, 문제 해결 및 상태 모니터링에 필수적인 로그 확인 방법을 학습합니다.

작업 내용

수행해야 할 작업은 다음과 같습니다:

  1. nginx 이미지를 기반으로 my-container라는 이름의 컨테이너를 시작하세요.
  2. my-container 컨테이너의 로그를 확인하세요.

요구 사항

  • 컨테이너를 시작할 때는 docker run 명령어를 사용하세요.
  • 컨테이너 로그를 확인할 때는 docker logs 명령어를 사용하세요.
  • 모든 작업은 /home/labex/project 디렉토리에서 수행해야 합니다.

예시

작업을 성공적으로 마치고 docker ps 명령어를 입력하면 실행 중인 컨테이너를 확인할 수 있습니다. 출력 결과는 다음과 유사해야 합니다:

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
3a7d9f642a7f   nginx     "/docker-entrypoint.…"   12 seconds ago   Up 11 seconds   80/tcp    my-container

이 결과는 Nginx 컨테이너가 정상적으로 구동되어 웹 서비스를 제공할 준비가 되었음을 의미합니다.

첫 번째 컨테이너를 성공적으로 실행하셨습니다! 컨테이너를 시작하고 로그를 확인하는 능력은 Docker 활용의 기본 중의 기본입니다. 다음으로는 실행 중인 컨테이너를 중지하는 방법을 알아보겠습니다.

컨테이너 중지하기

컨테이너를 실행하는 것만큼이나 안전하게 중지하는 방법도 중요합니다. 유지보수 작업을 수행하거나, 설정을 변경하거나, 단순히 시스템 자원을 확보해야 할 때 이 기술이 필요합니다.

작업 내용

수행해야 할 작업은 다음과 같습니다:

  1. my-container라는 이름의 컨테이너를 중지하세요.

요구 사항

  • 컨테이너를 중지할 때는 docker stop 명령어를 사용하세요.
  • 모든 작업은 /home/labex/project 디렉토리에서 수행해야 합니다.

예시

컨테이너를 성공적으로 중지한 후 docker ps -a를 입력하면 중지된 컨테이너를 포함한 전체 목록을 볼 수 있습니다. 출력 결과는 다음과 유사해야 합니다:

CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS                      PORTS     NAMES
3a7d9f642a7f   nginx     "/docker-entrypoint.…"   2 minutes ago   Exited (0) 10 seconds ago             my-container

my-container의 상태 (STATUS) 가 "Exited"로 변경된 것을 확인할 수 있으며, 이는 컨테이너가 정상적으로 종료되었음을 나타냅니다.

컨테이너를 성공적으로 중지하셨습니다! 이 기술은 컨테이너의 생명주기를 효과적으로 관리하는 데 필수적입니다. 이제 컨테이너 시작과 중지를 마스터했으니, 실행 중인 컨테이너 내부에서 명령을 실행하는 좀 더 심화된 주제로 넘어가 보겠습니다.

컨테이너 내부에서 명령 실행하기

Docker 의 강력한 기능 중 하나는 실행 중인 컨테이너 내부에서 직접 명령을 실행할 수 있다는 점입니다. 이 기능은 컨테이너를 중지하지 않고도 디버깅을 하거나, 유지보수 작업을 수행하거나, 설정을 업데이트할 때 매우 유용합니다.

작업 내용

수행해야 할 작업은 다음과 같습니다:

  1. ubuntu 이미지를 기반으로 my-shell-container라는 이름의 컨테이너를 시작하세요. 이 컨테이너는 백그라운드에서 계속 실행 중이어야 합니다.
  2. my-shell-container 내부에서 echo "Hello World" 명령을 실행하세요.

요구 사항

  • 컨테이너를 시작할 때는 docker run 명령어를 사용하세요.
  • 시작 후 컨테이너가 즉시 종료되지 않고 활성 상태를 유지하도록 설정하세요.
  • 컨테이너 내부에서 명령을 실행할 때는 docker exec 명령어를 사용하세요.
  • 모든 작업은 /home/labex/project 디렉토리에서 수행해야 합니다.

힌트

ubuntu 이미지 기반의 컨테이너는 별도의 지속적인 명령이 지정되지 않으면 실행 직후 바로 종료됩니다. 컨테이너를 계속 띄워 두려면 시작 시 sleep infinity와 같은 명령을 함께 실행하는 것을 고려해 보세요. 예시:

docker your-command sleep infinity

예시

컨테이너를 시작한 후 docker ps 명령어로 실행 상태를 확인할 수 있습니다. 출력 결과는 다음과 유사해야 합니다:

CONTAINER ID   IMAGE     COMMAND            CREATED          STATUS          PORTS     NAMES
1a2b3c4d5e6f   ubuntu    "<command>"        30 seconds ago   Up 29 seconds             my-shell-container

컨테이너 내부에서 echo 명령을 실행하면 다음과 같은 결과가 출력되어야 합니다:

Hello World

이를 통해 실행 중인 컨테이너 내부에서 성공적으로 명령을 수행했음을 확인할 수 있습니다.

훌륭합니다! 이제 실행 중인 컨테이너와 상호작용하는 방법을 익히셨습니다. 이 기술은 컨테이너 관리 및 유지보수의 폭을 크게 넓혀줍니다. 마지막 단계에서는 더 이상 필요하지 않은 컨테이너를 삭제하여 정리하는 방법을 배워보겠습니다.

컨테이너 삭제하기

Docker 를 사용하다 보면 테스트나 임시 작업을 위해 컨테이너를 자주 생성하게 됩니다. 시스템 자원을 확보하고 Docker 환경을 깔끔하게 유지하기 위해 더 이상 필요 없는 컨테이너를 삭제하는 습관을 갖는 것이 중요합니다.

작업 내용

수행해야 할 작업은 다음과 같습니다:

  1. my-shell-container 컨테이너를 중지하고 삭제하세요.

요구 사항

  • 컨테이너를 중지할 때는 docker stop 명령어를 사용하세요.
  • 컨테이너를 삭제할 때는 docker rm 명령어를 사용하세요.
  • 모든 작업은 /home/labex/project 디렉토리에서 수행해야 합니다.

예시

작업을 마친 후 docker ps -a를 입력하여 my-shell-container가 삭제되었는지 확인합니다. 목록에서 해당 컨테이너가 더 이상 보이지 않아야 합니다:

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

이는 시스템에서 컨테이너가 성공적으로 제거되었음을 의미합니다.

마지막 단계까지 완료하신 것을 축하드립니다! 불필요한 컨테이너를 삭제하여 Docker 환경을 정리하는 방법을 배우셨습니다. 이 기술은 효율적이고 조직적인 Docker 작업 공간을 유지하는 데 필수적입니다.

요약

이번 종합 챌린지를 통해 Docker 컨테이너 관리의 핵심 요소들을 두루 살펴보았습니다. 컨테이너 시작, 로그 확인, 실행 중인 컨테이너 중지, 내부 명령 실행, 그리고 마지막으로 불필요한 컨테이너 삭제까지 모든 과정을 성공적으로 수행하셨습니다.

이러한 기술들은 Docker 를 효과적으로 활용하기 위한 기초이며, 개발 및 테스트 환경부터 실제 운영 배포에 이르기까지 다양한 상황에서 유용하게 쓰일 것입니다. Docker CLI 를 직접 다루며 얻은 실무 경험은 컨테이너 기반 애플리케이션을 다루는 모든 이들에게 매우 소중한 자산이 될 것입니다.

Docker 학습을 계속 진행하면서, 오늘 배운 기본 조작들이 더 복잡한 워크플로우를 구성하는 기초가 된다는 점을 기억하세요. 이 기술들을 꾸준히 연습하면 컨테이너 관리 능력이 더욱 향상될 것이며, 결과적으로 더 효율적이고 간결한 개발 및 배포 프로세스를 구축할 수 있게 될 것입니다.

Docker 의 다양한 기능을 계속 탐구해 보세요. 다양한 이미지와 컨테이너 설정을 실험해 보는 것을 주저하지 마세요. 컨테이너화의 세계는 무궁무진하며, 여러분은 이제 그 세계를 자신 있게 탐험할 준비가 되었습니다!

✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습