docker 공부 시작하기 [spring-boot] run 과 start의 차이와 attach, detach에 대해서- (3)

xxx-sj·2023년 11월 26일
0

도커

목록 보기
3/3

이 전에는 docker run만 이용해서 컨테이너를 생성하고 실행했지만, docker start를 통해 종료된 컨테이너를 다시 실행시킬 수 있습니다.

📙종료된 컨테이너 다시 실행하기

종료시킨 컨테이너를 다시 실행하기 위해서는 컨테이너 ID를 갖고 다시 실행할 수 있습니다.
컨테이너 list를 찾는 명령어는 다음과 같다.

docker ps -a

컨테이너를 다시 실행시키는 명령어는 다음과 같다.

docker start [container-id / container-name]

컨테이너를 처음 run을 통해 실행시켰을 때 주었던 옵션이 start를 통해 다시 실행했을 때 동일하게 주어진다.
start를 통해 컨테이너를 실행하게 되면, run때와는 다르게 터미널을 차단하지 않는다.

📗 attach, detach

여기서 말하는 attachdetach의 차이는 간단하게 생각하면 현재 실행중인 컨테이너에서의 출력 내용을 볼 수 있고 없고의 차이이다. attach모드는 볼 수 있고 반대로 detach는 볼 수 없다.

run명령어를 통해 컨테이너를 생성하고 실행할 때는 attach 모드가 기본이 되며, 포그라운드로 실행하게 된다. 따라서 이때는 터미널이 차단되게 된다.

만약 run사용 시 detach모드로 실행하고 싶다면 run 명령어 사용 시 추가적으로 -d 옵션을 주면 된다.
detach로 실행하게 되면 터미널이 차단되지 않고 해당 컨테이너백그라운드로 실행되게 된다.

docker run -d -p 8081:8081 [image-name]

start명령어로 컨테이너를 실행하게 되면 기본적으로 백그라운드 detach모드로 실행되게 된다. 이 때 만약 attch모드로 실행하고 싶다면 -a옵션을 추가하면 된다.

docker start -a [container-name / container-id]

만약, start명령어로 컨테이너를 실행하였을 때 attach모드로 들어가고 싶다면 다음과 같이 사용할 수 있다.

docker (container) attach [container-name / container-id]

추가적으로 detach모드로 실행되었지만 로그를 보고 싶다면 다음과 같이 사용하면 된다.

docker logs (-f) [container-name / container-id]

-f 옵션은 fllow 옵션이다.

주의점은 이 전에 컨테이너를 종료하고 실행한 로그들이 다 보인다는 것..

profile
틀려도 일단 기록하자

0개의 댓글