코딩이야기/Docker
도커 입문 10강 - docker exec 명령어 변경
RockSlim
2024. 6. 13. 17:20
attach로 접근할 수 없는 경우
OS만 있는 컨테이너와 다르게 다른 command가 있는 컨테이너들은 단순히 attach로 리눅스 쉘에 접근할 수가 없다.
docker run -d -p 8080:80 httpd
이렇게 컨테이너를 실행시킨 후
docker attach [방금실행시킨 httpd ID]
attach 명령어로 리눅스 쉘에 접근하려고 하면 접근이 안된다.
run할 때 -it를 붙이지도 않았을 뿐더러 실행되고 있는 명령어가 /bin/bash가 아니라 httpd-foreground 이기 때문.
그렇다면 실행할 때 -it 옵션을 준다면?
docker run -dit httpd
docker run -dit httpd bash
이렇게 실행해서 docker attach를 하면 어떨까? 컨테이너가 바로 종료되어버린다.
두번째 줄에있는 bash명령어를 줘도 마찬가지.
다른 명령어가 실행되고 있을 때 터미널에 접근하고 싶다면?
docker exec -it [CONTAINER_ID] bash
exec -it 명령어로 해결 할 수 있다. 상호작용할 수 있는 bash를 실행시켜준다.
옵션인 -it의 의미는 이전 강의에와 마찬가지인것 같다.
-i : interactive 상호작용
-t : terminal 모드 /bin/bash로 상호작용한다.