반응형

컨테이너를 조회, 시작, 재시작, 정지, 삭제하는 커맨드를 소개하겠습니다. 또한 컨테이너 내부의 터미널과 연결하는 방법에 대해 알아보도록 합시다.


컨테이너 조회하기

docker container ls

docker container ls 로 조회가 가능하며, -a 옵션으로 정지된 컨테이너까지 조회가 가능합니다.

현재 web 이라는 이름으로 정지된 컨테이너가 하나 있습니다.

 

컨테이너 시작하기

docker container start [컨테이너식별자]

docker container start [컨테이너식별자] 로 컨테이너를 시작할 수 있습니다.

 

 

컨테이너 재시작

docker container restart [컨테이너식별자]

docker container restart [컨테이너식별자] 로 컨테이너를 재시작할 수 있습니다.

web 이란 이름의 컨테이너가 재시작 되었습니다.

 

docker restart 와 start의 차이

docker restart는 컨테이너를 중지한 후 다시 실행합니다. 컨테이너가 이미 중지되어 있다면 start와 동일합니다.

 

컨테이너 정지하기

docker container stop [컨테이너식별자]

docker container stop [컨테이너식별자] 로 컨테이너를 정지합니다.

커멘드를 실행시키면 몇 초 정도 시간이 걸립니다. 기본적으로 앱에 sigterm 신호를 보낸 후 앱이 자동으로 종료될 때까지 10초 정도의 유예를 허용하고 있고 종료됩니다. docker container ls -a 로 조회해보면 여전히 리스트에는 나오지만 Exited 표시가 됩니다.

 

컨테이너 삭제하기

docker container rm [식별자]

docker container rm [식별자] 를 사용하여 컨테이너를 삭제할 수 있습니다. 컨테이너가 실행 중일 때는 삭제가 불가능 하니 docker stop 으로 컨테이너를 종료시킨 후 삭제해 주세요.

 

foregournd에서 컨테이너 실행하기(컨테이너 내부에 터미널 연결)

이미지에서 컨테이너를 실행할 때 docker container run -d 와 같이 -d 플래그를 사용하면 터미널에서 분리되어 실행됩니다. 일반 웹 서버와 같이 백그라운드에서 실행되도록 설계된 컨테이너에는 상관없습니다. -it 옵션으로 터미널로 연결된 채로 포그라운드에서 컨테이너를 실행할 수도 있습니다.

docker container run -it --name test alpine sh

기본 알파인 이미지를 기반으로 하고 컨테이너 내부에서 실행할 기본 앱으로 sh를 실행하고 있습니다.

만약 실행중인 컨테이너와 연결하고 싶은 경우는 docker exec -it [컨테이너식별자] sh 를 사용하면 됩니다.

자세히 보면 프롬프트가 바뀐 걸 볼 수 있습니다. 내 쉘이 실행 중인 컨테이너 내부에 직접 연결되었기 때문입니다. 즉 여기에서 명령을 실행할 때마다 실제로 컨테이너 내부에서 실행됩니다.

빠져나오고 싶을 때는 exit를 입력하면 내 pc의 터미널로 돌아옵니다.

exit로 빠져나오면 컨테이너 역시 정지됩니다.

컨테이너 내부의 쉘에서 ctrl +p +q를 입력하면 컨테이너가 종료되지 않은 채 빠져나올 수 있습니다.


여기까지 읽어주셔서 감사합니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기