[Docker] 도커 입문과정 - Container 내부에서 명령어 실행

leeng·2023년 2월 20일
0

docker

목록 보기
5/6

컨테이너 내부에서 명령어를 실행하는 방법 역시 Docker Desktop을 이용하는 방법과 command line을 이용하는 방법 2가지가 있다.
우선 Docker Desktop을 이용한 방법을 알아보겠다.

1. Docker Desktop - Terminal 실행

Docker Desktop에서 왼쪽 메뉴에서 Containers를 클릭한 뒤 명령을 실행하려는 컨테이너를 선택한다. 그리고 해당 컨테이너에서 Terminal 탭을 누르면 명령어를 입력할 수 있는 창이 뜬다.
pwd, ls 등 명령어를 입력하면 컨테이너(여기서는 ws2)에서 명령이 실행된다.

2-1. Docker CLI - exec

컨테이너에서 명령어를 실행하는 명령어(?)는 docker exec이다.
"docker exec 컨테이너이름 실행할명령어"를 적어주면 된다.

아래와 같이 실행해보면 Docker Desktop의 Terminal에서 실행한 것과 동일하게 출력되는 것을 확인할 수 있다.

2-2. Docker CLI - Shell과 연결하기

그런데 컨테이너에서 명령어를 실행할 때마다 계속 "docker exec 컨테이너이름..." 명령어를 붙여주어야 하면 굉장히 번거로우므로 컨테이너와 지속적으로 연결하여 명령어를 실행할 수 있는 방법을 알아보자.
바로 "docker exec -it ws3 /bin/sh" 명령어를 통해 컨테이너의 쉘을 실행하여 연결을 유지하는 것이다.

위 명령어에서 '-it'가 연결을 지속적으로 유지하는 옵션이고(-i와 -t가 무슨 의미인지 docs를 읽어도 구글에서 여러 질답을 찾아봐도 이해가 안갔는데 chatGPT에 질문했더니 명료하게 답변을 해줬다! 정말 신기하다... i는 컨테이너의 입력을 받아 상호작용할 수 있도록 해주는 옵션이고, t는 컨테이너 내부의 쉘을 터미널과 같이 사용할 수 있도록 해주는 옵션이라고 한다.)
'/bin/sh'은 쉘을 실행하는 명령어이다.

해당 명령어를 실행한 후 쉘에서 pwd, ls 등 명령어를 입력하면 잘 실행되는 것을 확인할 수 있다.

그리고 쉘에서 빠져나올 때는 exit 명령어를 입력해주면 된다.

또 기본 쉘이 아니라 bash를 이용하기 위해서는 아래와 같이 입력하면 된다.
"docker exec -it ws3 /bin/bash"

profile
기술블로그보다는 기록블로그

0개의 댓글