반응형
Note1. docker exec vs docker run
docker exec
- 이미 실행 중인 컨테이너에 명령을 실행한다.
- 컨테이너를 새로 생성하지 않으며 기존 컨테이너 내부에서 명령을 실행한다.
docker exec -it <container_name>
"option"
-i (interactive) 표준 입력(STDIN)을 열어두어 키보드 입력을 받을 수 있도록 허용한다.
-t (tty/terminal) 가상 터미널을 할당하여 터미널처럼 보이게 한다. 프롬프트 표시나 색상을 지원한다.
-it 대화형 터미널 모드를 지원해 입출력이 모두 가능하도록 설정한다. 대부분의 경우 함께 사용한다.
docker run
- 새로운 컨테이너를 생성하고 실행한다.
- 컨테이너가 없으면 새로 생성하고 컨테이너가 있더라도 하나 더 생성한다.
docker run -it <container_name>
Note2. docker exec example
AWS EC2 Instance 내부의 mysql docker image에 docker exec 명령어를 사용하여 접근한다.
docker exec 명령어를 사용하기 위해선 현재 컨테이너가 실행중이어야 하기 때문에 docker ps 명령어를 통해 접근하고자 하는 인스턴스 (mysql)이 실행 중인지 체크한다.
docker ps
접근하고자 하는 컨테이너가 실행중이라면 docker exec 명령어를 사용해 컨테이너에 접근한다.
docker exec -it nimda-mysql mysql -u nimda -p
반응형