/ 2024. 11. 25. 13:04

Docker의 기본 개념과 컨테이너 실행 방법


 

 

Docker란 무엇인가?

Docker는 리눅스 기반의 컨테이너를 관리할 수 있도록 개발된 플랫폼입니다. 이 도구를 통해 사용자들은 서로 독립적으로 실행되는 프로세스를 생성하고 관리하며, 이를 통해 애플리케이션의 배포와 관리를 더욱 효율적으로 수행할 수 있습니다. Docker 컨테이너는 격리된 환경에서 실행되는 프로세스이며, 각각은 개인의 파일 시스템, 네트워크 설정 및 권한을 지니고 있습니다. 이러한 독립적인 환경 덕분에 사용자들은 시스템 리소스를 최적화하면서도 안전하게 애플리케이션을 실행할 수 있습니다.

Docker 컨테이너 실행의 기본 개념

Docker의 가장 중요한 명령어 중 하나인 docker run은 새로운 컨테이너를 생성하고 실행하는 데 사용됩니다. 이와 대조적으로 docker exec 명령어는 이미 실행 중인 컨테이너 내에서 새로운 프로세스를 실행할 수 있도록 해줍니다. 이는 컨테이너의 상태를 점검하거나 필요 시 특정 명령어를 실행할 수 있게 해줍니다.

docker exec 명령어 사용법

컨테이너 실행 중 docker exec 명령어를 사용하는 방법은 다음과 같습니다. 기본적인 구문은 docker exec [CONTAINER_ID] [COMMAND]입니다. 이를 통해 특정 컨테이너의 환경에서 명령어를 실행할 수 있습니다. 예를 들어, 실행 중인 컨테이너의 이름이 "ghost"라면, 다음과 같이 현재 경로를 출력할 수 있습니다:

$ docker exec ghost pwd

또한, 셸 환경을 시작하고 싶다면, -it 옵션을 사용하여 인터랙티브한 셸을 여는 것이 가능합니다:

$ docker exec -it ghost bash

docker exec와 docker run의 차이점

docker rundocker exec는 비슷한 점이 있지만, 주요 차이점이 존재합니다. docker run은 새로운 컨테이너를 만들고 실행하는 데 사용되는 반면, docker exec는 이미 실행 중인 컨테이너 내에서 명령어를 실행합니다. 이를 통해 관리자는 기존 컨테이너의 상태를 점검하고, 문제를 해결하는 등의 작업을 수행할 수 있습니다.

 

docker exec를 사용해보자

컨테이너를 실행할 때, 특정 작업을 위해 이미 만들어진 컨테이너에 접근하고 싶다면 docker exec를 사용할 수 있습니다. 예를 들어, Ghost 블로그 컨테이너를 실행시키고 내부 명령어를 입력하는 방식을 살펴보겠습니다. 먼저 컨테이너를 실행합니다:

$ docker run -d -p 2368:2368 --name ghost ghost:4.3-alpine

이후 docker ps 명령어를 통해 현재 실행 중인 컨테이너 목록을 확인합니다:

$ docker ps

docker exec의 활용 사례

컨테이너가 실행되고 있을 때, 아래의 명령어를 통해 다양한 작업을 수행할 수 있습니다:

 
  • docker exec ghost pwd: 현재 디렉토리 출력
  • docker exec ghost ls: 디렉토리 내 파일 목록 출력
  • docker exec ghost ps: 실행 중인 프로세스 목록 출력

이처럼 docker exec 명령어를 사용하면 컨테이너 내부에서 셸 명령어를 실행하여 필요한 정보를 얻거나 상태 점검을 할 수 있습니다.

docker exec의 유용한 옵션들

docker exec에 적용할 수 있는 여러 가지 유용한 옵션들이 있습니다. 예를 들어, --workdir 옵션을 사용하면 명령어가 실행될 작업 디렉토리를 지정할 수 있습니다:

$ docker exec -it --workdir /tmp ghost bash

추가 환경 변수를 정의하려면 -e 옵션을 사용하여 아래와 같이 실행할 수 있습니다:

$ docker exec -it -e ADDITIONAL_ENV=value ghost bash

리눅스에서는 env 명령어를 통해 지정한 환경 변수가 설정되었는지 확인할 수 있습니다:

bash-5.0# env | grep ADDITIONAL_ENV

결론

Docker는 현대 애플리케이션 환경을 지원하는 강력한 도구이며, docker exec 명령어를 통해 실행 중인 컨테이너에서 즉각적으로 필요한 작업을 수행할 수 있습니다. 이와 같은 기능을 활용하면 애플리케이션의 상태 점검과 디버깅을 효과적으로 진행할 수 있으므로, Docker를 통해 더욱 효율적인 개발 환경을 구축할 수 있습니다.

 

 

레이 전기차 보조금 지원금 신청 요령

2024 기아 레이 전기차 보조금 지원 안내2024년 기아 레이 EV는 많은 관심을 받고 있는 새로운 전기차 모델입니다. 이 차량은 소형 경차로 설계되어 다양한 연령층에게 적합하며, 공간 활용성도 뛰

lifetip101.tistory.com

 

질문 FAQ

Docker란 무엇인가요?

Docker는 리눅스 기반의 컨테이너 기술을 활용하여 애플리케이션을 관리하고 배포하는 플랫폼입니다. 이 시스템은 프로세스를 일관된 환경에서 독립적으로 실행할 수 있게 해줍니다.

docker exec 명령어는 어떻게 사용하나요?

docker exec는 이미 실행 중인 컨테이너에서 새로운 명령어를 실행할 수 있게 해주는 명령어입니다. 사용법은 docker exec [컨테이너_ID] [명령어] 형태로, 필요에 따라 다양한 작업을 수행할 수 있습니다.

docker run과 docker exec의 차이는 무엇인가요?

docker run은 새로운 컨테이너를 생성하여 실행하는 반면, docker exec는 이미 실행 중인 컨테이너에 명령어를 추가로 실행하는 기능을 제공합니다. 이로 인해 컨테이너 관리 및 상태 점검이 용이해집니다.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유