목차
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 run
과 docker 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는 이미 실행 중인 컨테이너에 명령어를 추가로 실행하는 기능을 제공합니다. 이로 인해 컨테이너 관리 및 상태 점검이 용이해집니다.