August 20, 2019

Docker Container - Process 실행

Docker Container Process execute

실행중인 컨테이너에 새로운 프로세스를 실행할 수 있습니다.

docker exec <옵션> <컨테이너명> <명령어> <인자...>

백그라운드로 작동되고 있는 컨테이너 (Apache - Web) 서버에 액세스시 "docker attach <컨테이너명>"를 사용하여 Shell에 연결해도 작동되지 않거나 심각한 경우 컨테이너가 꺼지는 경우가 있습니다.

Docker의 exec 명령을 사용하여 백그라운드로 구동되고 있는 컨테이너에 액세스하여 Shell를 사용할 수 있으며, 다른 목적으로는 한 번만 명령을 실행할 때도 사용합니다.

아래 옵션을 통해 확인해보도록 하겠습니다.




dongdonge@dongdonge$ docker exec --help

Usage:	docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Run a command in a running container

Options:
  -d, --detach               Detached mode: 백그라운드로 실행
      --detach-keys string   Override the key sequence for detaching a container
  -e, --env list             환경변수 설정시 사용
  -i, --interactive          STDIN (표준 입력)으로 연결
      --privileged           Give extended privileges to the command
  -t, --tty                  TTY 사용
  -u, --user string          Username or UID (format: <name|uid>[:<group|gid>]) 사용자명 지정
  -w, --workdir string       Working directory inside the container




dongdonge@dongdonge$ sudo docker exec -it a248a5fabf6f /bin/bash
root@a248a5fabf6f:/# 

현재 백그라운드로 구동중인 Web Server에 "/bin/bash"의 Shell를 할당 받아 명령을 실행할 수 있습니다.