ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker Container 중지 & 재시작
    Infra/컨테이너 2022. 8. 22. 15:18

    반드시 알고 있어야 하는 핵심 명령어

     

    docker ps

    docker ps -a

    모든 Container를 목록으로 보여준다. 하지만 오로직 실행 중인 Container만 거기에 해당하며, 실행이 중지된 Container도 포함해서 목록으로 보고 싶다면 option -a를 추가해서 명령어를 실행해야 한다.

     

    docker ps --help

    docker ps에 사용된느 가능한 모든 구성 option이 표시된다.

     

    Docker로 할 수 있는 중요한 한 가지는 실행이 중지된 Container를 실행할 수 있다는 것이다. 또 한 새로운 Container를 항상 docker run으로 실행할 필요는 없다. docker run을 사용하면 1)Image를 기반으로 새로운 Container를 만들고 2)이 후에 만들어진 Container가 실행되는 것 까지 동작한다.

     

    Docker Hub에서 base image로 맞바로 Container를 만들고 또 실행하면 해당 Container에 포함된 Application의 종속성 및 소스 코드 어떤 것도 변경되지 않고 새로운 Container가 만들어지고 실행되기 때문이다.

     

    또 종속성 이나 소스코드의 변경으로 Imge가 변경되지 않는 경우에는 완전 새로운 Container를 만들거나 실행시킬 필요가 없다. 그냥 기존에 만들어져 있던 Container를 restart해도 된다.

     

    이를 위해 docker ps -a를 이용해서 중지된 Container 검색하고 목록화해서 볼 수 있다. 또 해당 명령어를 사용해서 최근에 작업한 Docker Container의 히스토리도 볼 수 있다.

     

    docker start

    코드와 도커 파일이 아무 것도 변경되지 않은 경우 종료된 가장 최근 Container를 가져와서 bold_boyd docker start(컨테이너 이름 또는 ID)로 다시 시작할 수도 있다. 

     

    해당 명령어로 실행하면 Container가 백업된다. 이제 다른 방식으로 Container가 시작하는 것을 볼 수 있다. docker run과 같이 터미널을 블록하지는 않지만 해당 Container는 실행 중이라고 생각할 수 있다. 실행중인 Container만 목록화하는 docker ps로 검색해도 해당 Container가 실행 중인 것을 확인 할 수 있다.

     

    또한 해당 Container가 생성될 당시에 매칭된 port인 7070의 localhost를 브라우저에 검색해보면 Container안에 노드 서버 Application이 정상적으로 수신대기를 하고 있는 것을 확인 할 수 있다.

     

    docker start (컨테이너 이름 또는 ID)를 통해 시작된 Container는 시작되긴 했지만 실제로 터미널을 통해 명령어로 상호작용하거나 log를 볼 수 없다. 대신에 해당 Container를 restart한 다음 restart한 터미널에서 계속 다른 명령어들을 입력할 수 있었다.

    댓글

Designed by Tistory.